接口 返回值為一個集合
public interface UserSearchService{
List<User> listUser();
}
接口實現(xiàn)
public List<User> listUser(){
List<User> userList = userListRepostity.selectByExample(new UserExample());
if(CollectionUtils.isEmpty(userList)){//spring util工具類
return null;
}
return userList;
}
// 這個接口實現(xiàn)返回值為null,這樣寫的隱患是調(diào)用方假如沒有校驗返回值是否為空,就會出現(xiàn)空指針異常!
接口實現(xiàn)優(yōu)化
public List<User> listUser(){
List<User> userList = userListRepostity.selectByExample(new UserExample());
if(CollectionUtils.isEmpty(userList)){
return Lists.newArrayList();//guava類庫提供的方式
}
return userList;
}
// 對于接口(List listUser()),它一定會返回List,即使沒有數(shù)據(jù),它仍然會返回List(集合中沒有任何元素);
// 通過以上的修改,我們成功的避免了有可能發(fā)生的空指針異常,這樣的寫法更安全!
guava 的pom依賴
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>