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(...);
}
沒有留言:
張貼留言