2016-04-08 10 views
-6

initialisieren Wenn ich den Code untenWarum sollte Liste in Java

List<String> listOfStrings=new ArrayList<>(); 
listOfStrings.add("first string"); 

oder den folgenden Code verwenden

List<String> listOfStrings; 
listOfStrings.add("first string"); 

eine Java-Liste zu erstellen, die beide die Codes erhalten kompiliert erfolgreich und auf denselben Ausgang geben Iterieren der Liste. Was ist die Relevanz der Initialisierung der Liste

+5

Der zweite wird nicht kompiliert, weil Sie 'listOfStrings' nicht definitiv einen Wert zugewiesen haben - angenommen, es handelt sich um eine lokale Variable. Wenn es sich um eine Membervariable handelt, erhalten Sie eine 'NullPointerException', weil Sie ihren Wert nicht vom Standardwert 'null' geändert haben. –

+0

müssen Sie die Liste initialisieren –

+0

Wie gesagt wurde, wird der zweite nicht kompilieren. –

Antwort

4

Wenn listOfStrings eine lokale Variable ist, wird das zweite Beispiel nicht kompilieren: Sie müssen definitely assign einen Wert für eine Variable, bevor Sie es verwenden können.

Es listOfStrings ist Mitglied oder statische Variable, würde das zweite Beispiel ein NullPointerException ergeben, weil Sie die add Methode auf einer null Referenz sind aufgerufen wird.

1

Im ersten Beispiel initialisieren Sie die Liste nicht, Sie instanziieren eine Klasse oder erstellen das neue Objekt, die Liste. Im zweiten Beispiel erhalten Sie einen Laufzeitfehler, weil die Variable listOfStrings null ist.

Verwandte Themen