網頁

2020/6/18

Effective Java 3e - Item 54: Return empty collections or arrays, not nulls 筆記

Effective Java 3e - Item 54: Return empty collections or arrays, not nulls 返回空集合或陣列,不要返回null。

若返回的集合或陣列為空時,不要返回null,應返回空集合物件。

List<String> getNameList() {
    // ...
    if (nameList.isEmpty()) {
        return Collections.emptyList(); // return empty collection
        // return null; // Don't do this
    } else {
        return new ArrayList<>(nameList); // 返回新集合確保原集合不被外部修改。
    }
}

String[] getNames() {
    // ...
    if (names.length == 0) {
        return new String[0];
    } else {
        return Arrays.copyOf(names, names.length); // 注意這是淺拷貝(shallow copy)
    }

}

若返回null則客戶端還必須處理null的情況,若不小心忘了處理常導致NullPointerException

List<String> nameList = getNameList();
if (nameList != null || nameList.size() > 0) {
    nameList.stream().map(...);
}

沒有留言:

張貼留言