2016-06-17 14 views
4

Ich lese O'REILLY Java8 Pocket Guide, wenn ich auf dieser Beratung kam über Unboxing [Seite 30]Unboxing - wie wird es eine bessere Möglichkeit, explizit verwenden intValue() im Vergleich zu Unboxing von selbst

Hinweis: Für diese Beispiele enden primitive Variablen mit einem Großbuchstaben p. Dies ist nicht die Konvention.

Das folgende Beispiel zeigt eine akzeptable, aber nicht die Verwendung von Unboxing

Stellen Sie das Gewicht Zulage empfohlen

weightLimitP = weightLimitP + weightAllowanceW; 

Es ist besser, diesen Ausdruck mit der intValue() Methode zu schreiben, wie hier gezeigt:

weightLimitP = weightLimitP + weightAllowanceW.intValue(); 

Frage: Was ich würde l Ike zu wissen, warum ist der zweite Ansatz ein besserer Weg? Ich meine, in welchen Worten ist es "besser". Wie unterscheidet es sich von Unboxing selbst

Hinweis: Die Wrapper-Klasse in diesem Beispiel ist Integer

+0

Sicherlich sagte der Taschenführer etwas darüber, warum der Autor denkt, dass es "besser" ist? –

+0

nein. Ich lese O'REILLY Java 8 Pocket Guide - Seite 30 – spiderman

+2

Ich würde überprüfen, ob ich Sie wäre. Ich erwarte normalerweise besser von O'Reilly (sogar in einem Taschenführer). –

Antwort

1

Diese beiden Code-Snippets exactly the same bytecode generieren. Also "besser" ist nur eine Frage des Stils und somit der Meinung.

1

Es kompiliert nach dem gleichen Code. Aber es könnte als besserer Stil betrachtet werden. Grund: Man kann jetzt auf einen Blick erkennen, dass eine NullPointerException ausgelöst werden kann oder dass es sich um eine Wrapper-Klasse handelt und eine primitive Klasse besser wäre.

Dies zu dem Sprichwort, dass Code häufiger als geschrieben gelesen wird.