老师,视频中讲的判断对象为空的方法不管用

老师,视频中讲的判断对象为空的方法不管用

@Override

public boolean equals(Object obj) {

if (obj == null || this == null) {

return false;

} else {

Fruits f = (Fruits) obj;

if (this.getShape().equals(f.getShape())

&& (this.getTaste().equals(f.getTaste()))) {

return true;

} else {

return false;

}

}

}

当对象被创建了以后,对象就不为空了,只有里面的值为空。这段代码就无法在没有初始化值的情况下,判断为空。应该怎么判断对象里面的属性为空呢?

正在回答

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

2回答

同学你好,这里当调用无参的构造方法创建了对象以后,传入的obj就不是一个null类型的对象,对应进入else中,此时的obj就可以强转了,例如
http://img1.sycdn.imooc.com//climg/5d626a9600011f7607310417.jpg

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

好帮手慕阿满 2019-08-25 17:10:01

同学你好,可以使用对象.get方法获取具体的属性值,然后判断是否为空,如:f.getShape()==null,获取Fruits对象f的shape属性,并判断是否为空。

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

  • 提问者 慕粉3765602 #1
    但是重写equals方法传入的是Object对象,没有具体的属性,怎么判断呢?
    2019-08-25 17:18:21
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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