前几天看到几个人在坛子里争论关于判断空值时null在前还是在后的问题,大约想了下有如下两种情况:
一、单纯判断对象是否为空,如:
null在前与在后没有固定的标准,只是个人习惯的问题,至于if块中的内容肯定是不会直接去调用str上的方法,否则就没必要去做这个判断了;
二、判断对象属性是否为空或是否为某个值,如:
判断对象属性是否为空前一定要确定对象是否为空,即逻辑与运算符前半段,该部分只是判断map对象是否为空,不涉及调用null值属性的问题,不会出现空指针,也就不存在null值在前或在后的问题了,后半段由于map.get(key)在key不存在的情况会返回空值,所有这部分一定要放在后边,否则调用null值的equals方法会出现空指针异常;
以上纯属个人见解,有点新手帖的意思,呵呵,有问题欢迎拍砖。
一、单纯判断对象是否为空,如:
String str = null;
if(null == str){
//对对象的相关操作
}
null在前与在后没有固定的标准,只是个人习惯的问题,至于if块中的内容肯定是不会直接去调用str上的方法,否则就没必要去做这个判断了;
二、判断对象属性是否为空或是否为某个值,如:
Map<String,String> map = new HashMap<String,String>();
map.put("key", "value");
if(null != map && "a".equals(map.get("val"))){
//对map的操作
}
判断对象属性是否为空前一定要确定对象是否为空,即逻辑与运算符前半段,该部分只是判断map对象是否为空,不涉及调用null值属性的问题,不会出现空指针,也就不存在null值在前或在后的问题了,后半段由于map.get(key)在key不存在的情况会返回空值,所有这部分一定要放在后边,否则调用null值的equals方法会出现空指针异常;
以上纯属个人见解,有点新手帖的意思,呵呵,有问题欢迎拍砖。