Ein primitives int auf eine Zahl werfen
Frage
Nehmen wir an, ich habe Folgendes:
int a = 2;
Number b = (Number) a;
System.out.println(b); // Prints 2
http://java.sun.com/docs/books/jls/first_edition/html/15.doc.html#238146 sagt, dass ein primitiver Wert nicht auf einen Referenztyp gegossen wird. Weiß Java, dass er eine Ganzzahl aus dem primitiven int erstellt und dann in die Superklasse wirbelt? Wie genau geht Java hinter den Kulissen damit um? Vielen Dank!
Lösung
Der Prozess wird genannt Autoboxen. Kurz gesagt, der Compiler sieht das eine Wrapper (Integer
) und nicht ein Primitiv (int
) wird benötigt und fügt die Konvertierung automatisch hinzu. Und tatsächlich deine Besetzung zu Number
ist nicht nötig.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow