2016-08-12 3 views
-1

Angenommen, ich habe eine Variable eines Typs var. Zu Zeiten, wenn ich die Variable nicht initialisiere, die ich initialisieren soll (durch Eclipse) sage ich zu null. Zu Zeiten, wenn ich am Anfang initialisiere, heißt esInitialisierung der Variablen Java

DataType var= null; "Remove this useless assignment to local variable "var"".

Meine Frage ist, warum ist dieser Unterschied in der Initialisierung in verschiedenen Szenarien? Ist der Datentyp abhängig?

+3

Bitte geben Sie spezifische Beispiele an, anstatt die Leute dazu zu bringen, sie für Sie zu finden. –

+1

Eine solche Zuweisung wäre nutzlos, wenn Sie 'DataType var = null;' in einer Zeile und 'var = somethingElse;' in einer folgenden Zeile haben, ohne 'var' dazwischen zu verwenden, da Sie nie den Anfangswert von verwenden Die Variable. –

+0

@Andy also warum würde ich aufgefordert werden, Variable an erster Stelle zu initialisieren, wenn ich es deklariert lasse. – yellow

Antwort

0

In erster Linie ist es in der Regel keine gute Praxis, auf null zu initialisieren, weil der Compiler Sie über eine Variable informiert, die gelesen wird, ohne richtig initialisiert zu werden. Und es auf Null zu setzen ist sehr zweifelhaft eine richtige Initialisierung; Höchstwahrscheinlich wird es eine NullPointerException erzeugen, wenn es de-referenziert wird.

Ich ermutige Sie immer diese Regeln whith Initialisierung von lokalen Variablen zu folgen:

  • einen Anfangswert gesetzt (und nur einmal), sobald es verfügbar ist. Verzögern Sie die Deklaration ggf. bis zu dem Punkt, an dem ein gültiger Wert verfügbar ist.
  • Initialisieren Sie nicht zu null, es sei denn, Sie schreiben den nachfolgenden Code, um diese Situation zu kennen.

zu Ende, wenn Eclipse-Sie über eine „nutzlose Initialisierung“, warnt ist sicher, weil der Ausgangswert Sie auf die Variable (auch wenn es null war) wird nie gelesen, bevor der nächste Wert eingestellt ist.