溫馨提示×

如何避免java foreach中的空指針異常

小樊
82
2024-09-05 15:00:27
欄目: 編程語言

要避免在Java的foreach循環(huán)中出現(xiàn)空指針異常(NullPointerException),你可以在訪問集合元素之前檢查它們是否為null。這里有一些建議:

  1. 在進(jìn)入foreach循環(huán)之前,確保集合本身不為null。如果集合為null,你可以使用一個空的集合替代,例如Collections.emptyList()
List<String> list = getList(); // getList() may return null
list = (list != null) ? list : Collections.emptyList();
for (String item : list) {
    // do something with item
}
  1. 在訪問集合元素的屬性或方法之前,檢查元素是否為null。
List<String> list = getList();
for (String item : list) {
    if (item != null) {
        System.out.println(item.toUpperCase());
    } else {
        // handle null value, e.g., log it or skip it
    }
}
  1. 使用Java 8的Optional類來避免空指針異常。
List<String> list = getList();
list.stream()
    .filter(Objects::nonNull) // filter out null elements
    .map(String::toUpperCase)
    .forEach(System.out::println);
  1. 如果你有一個嵌套的集合,確保在訪問內(nèi)部集合元素之前檢查外部集合和內(nèi)部集合是否為null。
List<List<String>> nestedList = getNestedList();
if (nestedList != null) {
    for (List<String> innerList : nestedList) {
        if (innerList != null) {
            for (String item : innerList) {
                if (item != null) {
                    System.out.println(item.toUpperCase());
                } else {
                    // handle null value
                }
            }
        } else {
            // handle null innerList
        }
    }
} else {
    // handle null nestedList
}

通過遵循這些建議,你可以避免在Java的foreach循環(huán)中遇到空指針異常。

0