Voiko java.lang.Double
:n muuntaa java.lang.Integer
:ksi?
Se heittää poikkeuksen
"java.lang.ClassCastException: java.lang.Double ei ole yhteensopiva java.lang.Integerin kanssa"
Sinun on nimenomaisesti saatava int-arvo käyttämällä metodia intValue() seuraavasti:
Double d = 5.25;
Integer i = d.intValue(); // i becomes 5
Tai
double d = 5.25;
int i = (int) d;
Double
ei ole Integer
, joten cast ei toimi. Huomaa ero Double
luokan ja double
primitiivin välillä. Huomaa myös, että Double
on Luku
, joten sillä on metodi intValue
, jota voit käyttää saadaksesi arvon primitiivisenä int
:nä.
Double ja Integer ovat Javan double- ja int-alkuisten luokkien kääreitä. Voit castata niiden välillä, mutta menetät liukuluvun. Toisin sanoen 5.4, joka on muunnettu int:ksi, on 5. Jos se heitetään takaisin, se on 5.0.