假设我要检查列表中的第一个元素是否等于“ YES”或“ NO”。
false
换句话说:如果我已经进行了空检查,那么如果A等于B 与如果B等于A 的顺序是否重要?
答案 0 :(得分:5)
是的。这很重要。
您仅检查列表是否为非空。如果列表中的第一个元素为 null ,那么您将在
处获得NullPointerException
firstListValue.equalsIgnoreCase("YES")
但是,如果可以确保列表中的所有元素(或至少第一个元素)都不为空,则这两个语句都是等效的。
答案 1 :(得分:1)
为实现安全起见,您可以在以下情况下先使用它:
if ("YES".equalsIgnoreCase(firstListValue)) {
return firstListValue;
}
因为“是”是硬编码的字符串,不会为null。与第二种方法一样,只要list元素为null,您将得到NullPointerException
。
答案 2 :(得分:1)
如果列表为空,此检查还将抛出NullPointerException
,因此您可以检查这两个条件
if(myList!=null && !myList.isEmpty())
并且还需要'null'检查通过'get()'检索到的所有值,因为如果列表为空或指定的索引超出范围'get()'方法将不会抛出'NullpointerException',它将仅返回空