开发者社区> 问答> 正文

Java有哪些NPE 产生场景?

Java有哪些NPE 产生场景?

展开
收起
大葱蘸大酱2 2021-10-13 14:31:08 574 0
1 条回答
写回答
取消 提交回答
  • 防止 NPE,是程序员的基本修养,注意 NPE 产生的场景:

    1)返回类型为基本数据类型,return 包装数据类型的对象时,自动拆箱有可能产生 NPE。

    反例:public int f() { return Integer 对象}, 如果为 null,自动解箱抛 NPE。

    2) 数据库的查询结果可能为 null。

    3) 集合里的元素即使 isNotEmpty,取出的数据元素也可能为 null。

    4) 远程调用返回对象时,一律要求进行空指针判断,防止 NPE。

    5) 对于 Session 中获取的数据,建议 NPE 检查,避免空指针。

    6) 级联调用 obj.getA().getB().getC();一连串调用,易产生 NPE。

    正例:使用 JDK8 的 Optional 类来防止 NPE 问题。

    资料来源:电子书《阿里巴巴Java开发手册》,下载链接:https://developer.aliyun.com/topic/download?id=1092

    2021-10-13 14:34:09
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载