1. 程式人生 > 其它 >Java 介面返回值集合防止空指標

Java 介面返回值集合防止空指標

介面 返回值為一個集合

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>