null值判断放在前面的原因

一、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的参数位置。

欢迎指正!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值