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>
posted @ 2021-06-25 15:19  鸿毛浮绿水  阅读(273)  评论(0编辑  收藏  举报