zoukankan      html  css  js  c++  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>
    
  • 相关阅读:
    CSwinform程序分页
    C#跨线程访问控件
    CS程序发布版本后提示自动升级功能
    winform控件的二次开发
    JavaNetty拆包粘包(二)
    JavaNetty(一)
    JavaAIO编程
    javaNIO编程
    Java中bio编程
    如何使用CryptoJS配合Java进行AES加密和解密
  • 原文地址:https://www.cnblogs.com/ww25/p/14931080.html
Copyright © 2011-2022 走看看