abc`1 2022-04-02 11:13 采纳率: 73.7%
浏览 28
已结题

空指针问题的解决思路请教

最近编码遇到了一个疑惑,业务代码包括同事的经常发生空指针报错(正常有值的时候不会,但是开发环境数据混乱,测试的时候就经常发生了)。
那么是不是每个方法都需要对其入参进行判null呢?
比如下面的每个方法都需要对入参进行判null:

private void xxx(Map<String, Object> map) {

    if(map != null) {
        Object value = map.get("key");
    }
}

private void xxx(List<String> list) {

    if(list != null && list.size() > 0) {
        list.get(0);
    }
}

private void xxx(String str) {

    if(str != null) {
        str.indexOf(".");
    }
}

因为方法是无法保证入参绝对不是null的,但是这样做就会导致到处都是判null的代码,很丑陋。
请问各位是如何应对的

  • 写回答

5条回答 默认 最新

  • flying_fish79 2022-04-02 11:49
    关注

    public修饰的方法最好都判断,可以直接判断,或者Assert类的方法、或者使用非空注解、或者用Optional的方法。private修饰的方法,不对外,调用地是已经知道的,调用地做好保证就好了,不需要都判断

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 4月10日
  • 已采纳回答 4月2日
  • 创建了问题 4月2日