Java编程中的哪个例外是最令人印象深刻的,可以说空的指针是臭名昭著的。不要说主要程序员会遇到。即使是中间的,专家级别的程序员也会落入这个坑而不会引起注意。
Java中的任何对象都可能为空。当我们调用空对象方法时,空指针异常。这是一种非常常见的错误。我们可以使用几种方法来避免这种异常,并使我们的代码更强大。
1.调用空对象的实例方法
2.访问空对象的属性
3.当数组是一个空的对象时,请长度
4.该方法的返回值为null,呼叫者直接使用
1.使用前,请确保初始化或检查是否初始化;
2.尝试避免在功能中返回零,或给出详细的注释;
3.除非有详细的解释,否则必须判断外部传输是否为null。
对象类中的等效方法在非空气对象引用中实现了平等的关系。它具有对称性X. equals(y)和y。equals(x)。
例如:
调用空对象会抛出一个空的指针异常。使用它来获得相同的值,将null传递到valueof()以返回null。特别是在那些包装中,例如整数,float,double和bigdecimal。
例如:
Java 8引入了可选类型,我们可以使用它来包装函数。该方法的优点是它可以清楚地定义该方法可以返回空值,因此呼叫者必须进行相应的处理,这样它不会引起空指针异常。但是,不可避免地需要更多的代码,并且将生成许多垃圾对象来增加GC的压力。因此,您需要在使用时适当考虑它。
在业务系统中,对象中的嵌套对象是一个频繁的场景,如下所示:示例代码:
在业务中,假设我们需要获取对象属于底部的属性,则必须编写一堆非空置验证以防止发生:
在Java8中,我们有一个更优雅的解决方案,这意味着我们可以在代码行中执行流动型操作。地图方法将自动执行空虚:
我们可以使用功能来产生最终解决方案:
使用上述方法重建上述非空验证代码段:
许多开源库为您进行了重型空气指针检查。最常用的是Apache Commons。您可以使用它,而其他工具也不必担心空指针异常。
该断言用于检查程序的安全性。使用前检查条件。
Java中的断言关键字:断言,例如:
输出:
但是,如果默认值不启动断言检查,则需要带上JVM参数:-enableasSertions才能生效。
这在爪哇很小。建议使用弹簧,它更强大,更方便且易于使用。
春季使用:
一项非常好的技术是创建一种返回空收集的方法,而不是零值。应用程序的代码可用于收集和使用其方法和字段而无需抛售NullPoInterException。集合类提供方便的空列表,设置,和地图:,。
例如:
1.变量的价值分配自动拆除空指针
长自动拳击是使用LongValue来调用LongValue方法。由于上述长类型变量值为null,因此自动拳击将报告给NPE。
2.通过该方法传递并导致空气指针异常的自动盒卸下
上面的自动拳击报告给NPE,因为盒子的值为null。任何调用NULL的方法都会报告错误。
避免指南:
基本数据类型比包装的类型节省了时间和空间。
关于如何有效避免通风,还有更多。实际上,如何避免空的指针,一个是注意代码写作规范,另一个是改善代码素养。