码迷,mamicode.com
首页 > 编程语言 > 详细

【Java】对于空值null的判断

时间:2015-07-28 21:22:07      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:null   空指针   java   异常   空指针异常   

在大型程序开放过程中,无论是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的判断

标签:null   空指针   java   异常   空指针异常   

原文地址:http://blog.csdn.net/yongh701/article/details/47109337

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!