Има ли някакъв начин за превръщане на java.lang.Double
в java.lang.Integer
?
Това хвърля изключение
"java.lang.ClassCastException: java.lang.Double incompatible with java.lang.Integer"
Трябва изрично да получите стойността int чрез метода intValue() по следния начин:
Double d = 5.25;
Integer i = d.intValue(); // i becomes 5
Или
double d = 5.25;
int i = (int) d;
Числото Double
не е число Integer
, така че хвърлянето няма да се получи. Обърнете внимание на разликата между класа Double
и примитива Double
. Също така обърнете внимание, че Double
е Number
, така че има метод intValue
, който можете да използвате, за да получите стойността като примитивна int
.
Double и Integer са обвиващи класове за примитивите на Java съответно за double и int. Можете да ги прехвърляте, но ще загубите плаващата запетая. Тоест 5.4, превърнато в int, ще бъде 5. Ако го върнете обратно, то ще бъде 5.0.