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!

War es hilfreich?

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
scroll top