proudandhonour Antwort ist auf dem richtigen Weg, aber für alle möglichen Werte von arrayName
nicht funktionieren, und zwar, dass Fall, in denen arrayName
nicht definiert worden und ist null
. In diesem Fall wird der Code:
if(arrayName.length == 0)
System.out.println("array empty");
else
System.out.println("array not empty");
scheitern wird mit einer Antwort der NullPointerException.
Zeitreise richtig für diesen Fall prüft und richtig behandelt alle möglichen Werte für arrayName
. Der einzige Nachteil ist, dass sein Code ausführlicher ist, als er sein muss.
Java bietet Kurzschlussauswertung von booleschen Ausdrücken. Insbesondere ist das Ergebnis von false
für alle möglichen Werte von xx
. Wenn der erste Operand eines booleschen &&
-Operators ausgewertet wird, ignoriert die JVM daher den zweiten Operanden, wenn der erste Operand den Wert false ergibt.
das Ausnutzen, können wir schreiben:
if (arrayName != null && arrayName.length > 0)
{ System.out.println("The array length > 0"); }
else
{ System.out.println("The array is null or empty"); }
Es gibt auch die ternäre Operator die für inlining if-then-else-Ausdrücke einen Mechanismus zur Verfügung stellt. Dies kann die Lesbarkeit unter Umständen verbessern:
System.out.println((arrayName == null)
? "The arrayName variable is null"
: (arrayName.length < 1)
? "The array length is zero"
: "The array length is " + String.valueOf(arrayName.length)
);
das hängt davon ab, was Sie von __empty__ bedeuten. – Nabin
* "Ich wollte wissen, ob dieser Code gültig ist, um zu überprüfen, ob ein Array leer ist" * - der von Ihnen gepostete Code wird nicht einmal kompiliert.In der Zukunft ist es wahrscheinlich schneller, ** versuche nur, deinen Code zu kompilieren **, anstatt die Leute im Internet darum zu bitten, sie anzusehen. – DaoWen