Falscher Datentyp

mjkraus

Mitglied
Hallo!

Ich habe folgenden Code:
Java:
Number x = 3;
System.out.println( x instanceof Integer ? x.intValue() : x.floatValue() );
Die Ausgabe ist allerding "3.0" und nicht "3". Das heißt, es wird statt einem Integer- ein Float-Wert ausgegeben. Wie kann das sein?

Viele Grüße
Max
 
ganz einfach: 'x' ist eine Instanz der Klasse Number, nicht der Klasse Integer. In der Praxis wird dir dieser Fall aber sowieso nicht begegnen, da eignentlich niemand die Klasse Number direkt instanziiert.
 
Richtig ... denn Integer extends Number ... und in Java kann man nur von Sub-Typen auf Super-Typen casten ... aber nicht umgekehrt.
 

Neue Beiträge

Zurück