Java 介面返回值集合防止空指標
阿新 • • 發佈:2021-06-25
介面 返回值為一個集合
public interface UserSearchService{
List<User> listUser();
}
介面實現
public List<User> listUser(){ List<User> userList = userListRepostity.selectByExample(new UserExample()); if(CollectionUtils.isEmpty(userList)){//spring util工具類 return null; } return userList; } // 這個介面實現返回值為null,這樣寫的隱患是呼叫方假如沒有校驗返回值是否為空,就會出現空指標異常!
介面實現優化
public List<User> listUser(){ List<User> userList = userListRepostity.selectByExample(new UserExample()); if(CollectionUtils.isEmpty(userList)){ return Lists.newArrayList();//guava類庫提供的方式 } return userList; } // 對於介面(List listUser()),它一定會返回List,即使沒有資料,它仍然會返回List(集合中沒有任何元素); // 通過以上的修改,我們成功的避免了有可能發生的空指標異常,這樣的寫法更安全!
guava 的pom依賴
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>