一、null判断
当代码中有if()语句,这时判断一个字符串是否为null或者长度是否为零。
一般情况有下面的写法:
// 情况1
if(str.length() == 0 || str == null){
......
}
// 情况2
if(str == null || str.length() == 0){
......
}
从逻辑上讲,不运行程序的时候,简单看这两种情况的结果是一致的没问题。
但是运行程序后第一种情况就会报错。
原因:null是一个特殊的值,null值没有长度,也不能调用length()方法判断长度。
在调用length()方法的时候就会报错。
所以在需要对一个字符串或者变量需要进行null值判断的时候,需要把null值判断的代码放到前面。
二、变量为null的equal判断
一般情况,用一个字符串去和常量的字符串进行比较,写法有以下两种。
// 情况1
if(str.equals("1")){
......
}
// 情况2
if("1".equals(str)){
......
}
其实和上面相同,如果字符串str为null,第一种情况会报错,null不能调用equals方法。
所以在需要考虑到 变量的 null 值判断情况,变量要先判断null,再去判断长度。
变量在使用equals()方法时,如果为null则调用equals会报错,应该放到equals的参数位置。
欢迎指正!