千家信息网

代码检查服务是如何降低Billion DollarMistake NPE风险

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,代码检查服务是如何降低Billion DollarMistake NPE风险,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获
千家信息网最后更新 2026年11月02日代码检查服务是如何降低Billion DollarMistake NPE风险

代码检查服务是如何降低Billion DollarMistake NPE风险,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

"空安全(Null Safety)"是Kotin最吸引Java开发者的特性之一, Kotlin类型系统的目标是消除Null reference的危险性。Tony Hoare在2019年QCon London上将Null reference称为"my billion-dollar mistake"。所谓Null reference是许多编程语言最为常见的陷阱之一,指的是访问Null reference的成员将导致null reference exception。在Java语言中,Nullreference通常等同于NullPointerException(即NPE)。

对于Java开发者来讲,或许只有处理过了NPE,才能成为一名真正的Java开发者。NPE通常来讲,会来自于以下场景:

  • 调用了一个空对象的实例方法;

  • 访问或者修改一个空对象的域成员;

  • 当数组是一个空对象时,取它的长度;

  • 对数组中的某些null元素进行范文或者修改;

  • 将null当做Throwable值抛出

如何防止NPE,简单来讲,主要是两点要素:手段与方法、意识与经验。Java开发者可以参考以下最佳实践来防空:

  • 通过已知字符串常量而不是未知对象来调用equals()与equalsIgnoreCase()方法

  • 在valueOf()与toString()返回相同结果的地方优先使用valueOf()

  • 使用null安全的方法与库

  • 避免从方法中返回null,而是返回空的collection或者array

  • 使用注解@NotNull和@Nullable

  • 在代码中避免不必要的autoboxing和unboxing

  • 遵循Contract并定义合理的缺省值

  • 在Java 8中使用Optional

  • 双重入参校验

尽管Java开发者能力对于防空是至关重要的,然而人难免会有所失误。为了进一步降低风险,华为云DevCloud建议项目或者产品团队使用代码检查服务来检查是否存在NPE。

1.准备工作

1.1 示例工程

Code4Benchmark是采用Java开发的示例工程,希望用于评估代码质量评估工具或者云服务对代码问题的检查能力,例如空指针(Null Pointer)、资源泄露、SQL注入(SQL Injection)等。

对于空指针场景,目前主要是显式解引用、前置判空、后置判空、空返回值等,代码片段如下:

  • 显式解引用: 直接对null对象解引用

图7 问题详情与修改建议

NPE是Java开发中的经典问题,华为云DevCloud代码检查服务提供的规则不止本文提到的3条规则,具体可以在"规则"中查看。在实际的项目开发中,用户可以直接选择"全面检查规则"来进行全方位的代码质量检测,以提升代码质量。

W. Edwards Deming曾说过"Inspectionis too late. Quality cannot be inspected into a product or servive. It must bebuilt into it."本质上,软件质量取决于工程师的意识、能力、方法与技能。然而,工程师的意识、能力、方法与技能需要不断提升。因而, 华为云DevCloud 代码检查服务在软件交付中仍然具有举足轻重的地位,不仅可以及时发现代码质量问题,而且可以强化工程师的预期行为,有助于提升工程师的意识、能力、方法与技能。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

代码 方法 开发 检查 工程 服务 对象 开发者 能力 质量 工程师 意识 规则 问题 技能 华为 风险 安全 场景 建议 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 杭州互联网科技公司 互联网 视角下的科技创新 四川狮子座互联网科技 无锡溥仪互联网科技有限公司 衡水科技产业互联网平台 现代科技和互联网有关系吗 深圳前海聚择互联网科技有限公司 金融科技与互联网金融相同和不同 互联网经济与金融科技 互联网金融中的现代科技 苏州五指互联网络科技有限 宜昌元轩互联网科技有限公司 互联网科技的全部知识 锡山区互联网智能科技产品供应 伍佰万互联网科技怎么赚钱 广州互联网高科技取餐柜 南京一网一红互联网科技有限公司 普陀区互联网教育科技管理办法 互联网科技的前景 瑞安市蟠桃会互联网科技有限公司 花魁咖啡 宁波青枫互联网科技有限公司 互联网科技实习生岗位职责 互联网科技寓意 银川新华互联网科技职业技术培训学校图片 顶级互联网科技成果有哪些 燊美集互联网科技有限公司 中国科技和美国互联网 互联网科技收购价值 互联网 科技节活动 微视频大赛
0