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条回答 默认 最新

  • 尘风-随手记 2022-04-02 11:49
    关注

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

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

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决