为什么要写if(obj==null)return false; ?

为什么要写if(obj==null)return false; ?

右边用快捷键自动重写的equals方法里,为什么要写if(obj==null)return false; ?

http://img1.sycdn.imooc.com//climg/5de4c51309c4ebae15990733.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,1. 如果右侧代码没有判断if(obj==null)在运行时,会出现nullpointerexception的异常,如图所示:

http://img1.sycdn.imooc.com//climg/5de4e83f0904fa7206360154.jpg

http://img1.sycdn.imooc.com//climg/5de4e82a098f41b306510111.jpg

2. 左侧未判断if(obj==null),在运行时也会出现与右侧一样的错误。同学可以添加上if(obj==null)的逻辑。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕小尤 2019-12-02 16:41:50

同学你好,if(obj==null)是判断接收的Object类型的对象是否为null,同学可以理解为,if(obj==null)是判断Object类型的对象是否有实例化,如果将没有实例化的对象,if(obj==null)则为true,返回false。例如:

//判断1 : 这里会返回 true
User user = null;
if(user == null){  
    return true;  
}else{  
    return false;  
}
//判断2 : 这里会返回 false
User user = new User();
if(user == null){  
    return true;  
}else{  
    return false;  
}
// 原因: User user = new User(); 这时候已经创建了一个对象,所以user不会为null

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 电磁护盾 #1
    如果右边的代码不加if(obj==null)return false; 这句,逻辑上会有什么后果?左边代码也没判断obj为null的情况啊。
    2019-12-02 18:10:53
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师