Überprüfen Sie, ob die Variable in Java initialisiert ist

7

Gibt es eine Möglichkeit in Java zu überprüfen, ob die Variable initialisiert wurde oder nicht innerhalb einer Klasse? Ich fand JavaScript , aber nicht für Java. Hören ist ein Beispiel für das, wonach ich suche.

%Vor%     
mr_azad 27.12.2015, 01:17
quelle

4 Antworten

7

Arrays in Java funktionieren wie Objekte (sie sind keine primitiven Typen).

Sie können also überprüfen, ob Ihr Array initialisiert wurde oder nicht:

%Vor%



Eine bessere Lösung (wenn Sie die Größe des Arrays bei der Instanziierung kennen)

Aber meiner Meinung nach sollten Sie die Variable in Ihrem Klassenkonstruktor wie folgt initialisieren:

%Vor%

Auf diese Weise werden Sie sicher sein, dass es jedes Mal initialisiert wird, wenn ein MyClass -Objekt erstellt wird.

Eine noch bessere Lösung (auch wenn Sie die Array-Größe bei der Instanziierung nicht kennen)

Wenn Sie die Größe des Arrays nicht kennen, verwende ich besser ein List :

%Vor%

Listen wird in der Größe geändert, wenn es voll wird.

    
Anthony Raymond 27.12.2015, 01:23
quelle
12

Sie können if (Average == null) verwenden, um zu prüfen, ob es null ist, aber Sie können nicht sagen, ob es explizit auf null oder nur null gesetzt wurde. Dies funktioniert für jeden Objekttyp (Arrays sind auch Objekte), da der Standardwert der Objekte Null ist. Die 8 primitiven Typen (int, byte, float, char, long, short, double und boolean) können jedoch nicht null sein. Z.B. Ein int ist standardmäßig 0, wenn Sie ihm keinen Wert zuweisen.

    
Andrea Dusza 27.12.2015 01:19
quelle
6

Wenn Sie sich Sorgen um die Variable außerhalb der Klassendefinition machen, sollten Sie prüfen, ob null vorhanden ist oder nicht.

null zeigt an, dass die Variable nicht initialisiert ist. Im Fall primitiver Typen, wie zB int , double und ähnlich, werden Sie vom Compiler benachrichtigt, dass eine bestimmte Variable nicht initialisiert wird.

In Klassen werden Felder bereits vor der Ausführung des Konstruktors mit Standardwerten initialisiert.

    
hrust 27.12.2015 01:25
quelle
2

Sie könnten das Feld als final deklarieren. Tun Sie das, müssen Sie es entweder im Konstruktor oder während der Variablendeklaration initialisieren. Wenn Sie ein final -Feld verwenden, wird Ihre nicht initialisierte Überprüfung überflüssig:

%Vor%

oder

%Vor%     
Mick Mnemonic 27.12.2015 01:31
quelle

Tags und Links