Java: Prüfen ob ein Array "null" ist?

Das Ergebnis basiert auf 2 Abstimmungen

Du kannst nicht auf ein leeres Objekt zugreifen 100%
Du kannst es so machen: 0%

5 Antworten

if (user_input == null) { //Fehlerzeile
    user_input=new String[1];
}
if (user_input[0]==null) { //Fehlerzeile
    user_input[0]="default";
}
Du kannst nicht auf ein leeres Objekt zugreifen

Leer sein ist nicht dasselbe wie Nichtsein.

Zum Beispiel: Wenn du keine Börse hast, dann kannst du kein Geld davon ausnehmen. Wenn du eine leere Börse hast, dann kannst du checken, dass sie tatsächlich leer ist, und keine Werte hat.

Hier wird ein int[] geprüft, und demonstriert zwischen Nichtsein und leer Sein:

https://stackoverflow.com/questions/2369967/how-can-i-check-whether-an-array-is-null-empty

Du würdest du aber ein String Array benutzen. Das steht näher zu deinem Problem und seiner Lösung:

https://stackoverflow.com/questions/22162231/empty-check-with-string-array

Wenn das Objekt null ist, kannst du auch keinen Indexer darauf anwenden.

Prüfe so:

if (user_input == null || user_input[0] == null) {

Beachte im Übrigen, dass du den Datentyp der Variable nicht dynamisch ändern kannst. Wenn user_input ein Array ist, kannst du ihm keinen String zuweisen.

Du kannst nicht auf ein leeres Objekt zugreifen
Hallo, ich habe in Java einen String[]

Also ein Array von Strings, deklariert z.B. als

String[] user_input = new String[20]; // für 20 Eingaben
dessen Wert über Usereingaben ins Programm festgelegt wird.

Wie machst du das? Holst du dir die Strings von der Konsole, über ein Scanner-Objekt? Oder fragst du ein Feld aus einem GUI-Objekt ab?

Wie produzierst du eine leere Eingabe?

Wenn user_input nicht wie oben einmal mit new erzeugt wurde, kann das eigentlich gar nicht (nicht nur manchmal) funktionieren.

Zeig mal etwas mehr von deinem Code.

Wo nichts ist, kannst du auch keinen Index [0] anwenden. Nicht user_input[0] (also das erste Element des Arrays user_input) ist null, sondern user_input selbst ist null (und damit kein Array).

Du musst daher prüfen, ob das Objekt selbst null ist:

if (user_input == null) {
  ...
}
Woher ich das weiß:Berufserfahrung – Inhaber einer App-Agentur & 15+ Jahre Programmiererfahrung