C'è un modo per lanciare java.lang.Double
a java.lang.Integer
?
Lancia un'eccezione
""java.lang.ClassCastException: java.lang.Double incompatibile con java.lang.Integer"
Dovete ottenere esplicitamente il valore int usando il metodo intValue() come questo:
Double d = 5.25;
Integer i = d.intValue(); // i becomes 5
Oppure
double d = 5.25;
int i = (int) d;
Un Double
non è un Integer
, quindi il cast non funzionerà. Nota la differenza tra la classe di Double
e il primitivo di double
. Nota anche che un Double
è un Number
, quindi ha il metodo intValue
, che puoi usare per ottenere il valore come un int
primitivo.
Double e Integer sono classi wrapper per le primitive Java per double e int rispettivamente. Potete fare il cast tra queste, ma perderete la virgola mobile. Cioè, 5.4 lanciato in un int sarà 5. Se lo rifate, sarà 5.0.