【Java】对于空值null的判断

在大型程序开放过程中,无论是SSH还是安卓,都需要对空值进行判断,尤其是某个实体传递过来的值,但是,往往对于null的判断条件没写好,导致空指针异常。

对于任意的Object,判断其是否为null,应该将Object xx==null写在所有判断条件的前头,一个为null的东西,调用其自身的任何方法都会出现著名的java.lang.NullPointerException空指针异常,包括Object.equals(null)都是会导致空指针异常的。其实一个为null的东西,它只能执行Object xx==null,其余任何的方法调用都是会出空指针异常的。

不过,要注意一点,对于String xx="",xx就不为null了,虽然其值为空,但是xx此时是经过实体化的对象,其可以调用isEmpty()方法来判断其是否是"",与String xx=null有根本区别,String xx=null与Object xx=null一样,都是只能执行Object xx==null,其余任何的方法调用都是会出空指针异常的。

用一个程序来说明这个问题,代码如下:

public class javaNullPointTest {public static void ObjectIsNull(Object object) {// Object的判空// 正确的判空try {if (object == null) {System.out.println("空指针异常没有发生,,为null");}} catch (NullPointerException e) {System.out.println("object == null不会导致空指针异常发生");}// 错误的判空try {if (object.equals(null)) {System.out.println("空指针异常没有发生,为null");}} catch (NullPointerException e) {System.out.println("object.equals(null)导致空指针异常发生");}}public static void StringIsNull(String string) {// String的判空try {if (string == null) {System.out.println("空指针异常没有发生,为null");} else if (string.isEmpty()) {System.out.println("空指针异常没有发生,值为空“”");}} catch (NullPointerException e) {System.out.println("string==null不会空指针异常发生");}// 错误的判空try {if (string.equals(null)) {System.out.println("空指针异常没有发生,为null");}} catch (NullPointerException e) {System.out.println("string.equals(null)导致空指针异常发生");}}public static void main(String[] args) {Object nullObject = null;String nullString1 = "";String nullString2 = null;System.out.println("对于nullObject:");ObjectIsNull(nullObject);System.out.println("对于nullString1:");StringIsNull(nullString1);System.out.println("对于nullString2:");StringIsNull(nullString2);}}

运行结果如下:

版权声明:本文为博主原创文章,未经博主允许不得转载。

既有美妙的风景,也会有称不上景只有风的地方。

【Java】对于空值null的判断

相关文章:

你感兴趣的文章:

标签云: