proudandhonour находится на правильном пути, но не будет работать для всех возможных значений arrayName
, в частности, тот случай, в котором arrayName
не была определена и null
. В этом случае код:
if(arrayName.length == 0)
System.out.println("array empty");
else
System.out.println("array not empty");
проваливается с ответом на NullPointerException.
TimeTravel в правильно тестирует для этого случая и корректно обрабатывает все возможные значения для arrayName
. Единственным недостатком является то, что его код более подробный, чем он должен быть.
Java обеспечивает Оценка короткого замыкания Булевы выражения. В частности, результат равен false
для всех возможных значений xx
. Поэтому при оценке первого операнда логического оператора &&
JVM будет игнорировать второй операнд, если 1-й результат оценивается как false.
Эксплуатируя это, мы можем написать:
if (arrayName != null && arrayName.length > 0)
{ System.out.println("The array length > 0"); }
else
{ System.out.println("The array is null or empty"); }
Существует также троичного оператор который обеспечивает механизм для встраивания если-то-иначе выражения. Это может улучшить читаемость в некоторых обстоятельствах:
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)
);
Это зависит от того, что вы имеете в виду __empty__. – Nabin
* «Я хотел знать, действительно ли этот код действителен для проверки, является ли массив пустым» * - код, который вы отправили, даже не компилируется.В будущем, вероятно, быстрее просто попытаться скомпилировать ваш код **, а не просить людей в Интернете смотреть на него. – DaoWen