假设我要检查列表中的第一个元素是否等于“ YES”或“ NO”。

dummy_method(List<String> myList) {
    if(myList.isEmpty()) {
        return null;
    }
    String firstListValue = myList.get(0).getStringValue();
    // Should I do this:
    if ("YES".equalsIgnoreCase(firstListValue)) {
        return firstListValue;
    }
    // OR this:
    if (firstListValue.equalsIgnoreCase("YES")) {
        return firstListValue;
    }
    // Do something else
}


换句话说:当我已经进行了空检查时,如果A等于B相对于B等于A的顺序是否重要?

最佳答案

是。这很重要。

您仅检查列表是否为非空。如果列表中的第一个元素为null,则您将在以下位置得到一个NullPointerException

firstListValue.equalsIgnoreCase("YES")


但是,如果可以确保列表中的所有元素(或至少第一个元素)都不为空,则这两个语句都是等效的。

10-07 16:16