auto casting?
-
Hallo, Hi!
Ich lerne gerade java und bin vorhin über folgendes gestolpert:double d = Double.valueOf("5.5");
Warum ist das erlaubt?
Laut Doku gibt Double.valueOf eine Instanz der Klasse Double zurück. Dies weise ich nun aber ja dem primitiven double zu.
Da ich bisher gelernt habe, dass java relativ pingelig ist, wenn es um Zuweisungen von versch. Datentypen geht, wundert mich, dass obiges erlaubt ist.Mit freundlichsten Grüßen
-
"auto casting" ist der falsche Begriff, seit Java 1.5 gibt es "auto boxing".
Achtung: Das heißt nicht, dass es Double etc. nicht mehr gibt und leider auch nicht, dass List<double> möglich ist. Die Unterscheidung zwischen primitiven Datentypen und Klassen ist weiterhin vorhanden. Nur macht der Compiler automatisch ein new Double(5.5) draus bzw. in deinem Fall ein .doubleValue() hinten dran. Erspart also nur Schreibarbeit.
Edit:
http://en.wikipedia.org/wiki/Autoboxing#AutoboxingMfG SideWinder