NPE nullpoNullPointerException问题
Posted BBinChina
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NPE nullpoNullPointerException问题相关的知识,希望对你有一定的参考价值。
编程开发中,我们经常会遇到空指针null point问题,强硬如C++会引发程序崩溃无法正常工作,所以空指针在C++程序中是特别敏感的,使用者需要时时刻刻进行检测。
以下代码在cpp非常常见
Point* p = func();
if (p!=nullptr)
当使用java进行开发时,因为Java程序"怎么写都不会崩"的特性导致使用者产生了惰性。
在Java封装类型(Double、Long、Integer)等类型的加持下,Java程序中的NPE问题越发常见:访问空指针引发的nullpoNullPointerException
异常。
尽管程序不崩,但不代表其健壮性(还需要正常处理业务呀),异常导致业务流程中断。
-
说明:
1、返回类型为基本数据类型,return包装数据类型的对象时,自动拆箱有可能产生NPE。
2、RPC接口采用基本类型时,java会对其进行初始化,比如:int a ,double b 分别为0 ,0.0等,会对调用方产生误解(0不等同于null),null是无效值。
3、局部变量使用基本数据类型减少封装包拆解损耗,局部变量需要当前使用者识别有效值无效值情况。 -
阿里的Java编程规范要求:
关于基本数据类型与包装数据类型的使用标准如下:
1) 所有的POJO类属性必须使用包装数据类型。
2) RPC方法的返回值和参数必须使用包装数据类型。
3) 所有的局部变量推荐使用基本数据类型。
说明:POJO类属性没有初值是提醒使用者在需要使用时,必须自己显式地进行赋值,任何NPE问题,或者入库检查,都由使用者来保证。
以上是关于NPE nullpoNullPointerException问题的主要内容,如果未能解决你的问题,请参考以下文章