1 最常见的空指针异常
1.1 初始化了空对象,但后来被篡改成了null
public void test(c){
//此处初始化了user对象
User user=new User();
//可能获取了null值,导致后续使用报空指针异常
user=userService.getById(userId);
//特别注意,此处依然可能报空指针异常
user.getName();
}
1.2 连续多次获取属性
public void test(String userId){
User user=userService.getById(userId);
if(user!=null){
// 注意: 多次获取属性时,非常容易导致空指针异常
String address=user.getExt().getAddress();
}
}
1.3 日志打印里面的属性获取很容易遗忘
public void test(String userId){
User user=userService.getById(userId);
if(user!=null){
// 注意: 多次获取属性时,非常容易导致空指针异常
String address=Optional.ofNullable(user.getExt())
.map(Ext::getAddress).orElse(null);
//日志里面的空指针很容易被忘掉
log.info(user.getExt().getAddress());
}
}
2 日志打印
打印debug前,不做验证的话,其实代码还是会跑的,对性能依然有影响
public void test(String userId){
User user=userService.getById(userId);
// 不加这个判断的话,下面这句代码还是会执行的,依然会影响性能
if(log.isEnableDebug()){
log.debug("xxx");
}
}
747

被折叠的 条评论
为什么被折叠?



