亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

重寫的equals函數里面有問題,大神求解??!

為什么傳遞的是Object類,我們比較的不是一個具體的它的子類嘛。

public boolean equals(Object obj) {

if (this == obj)//這條意思是本身的類也是Object類,且地址相同?

return true;

if (obj == null)

return false;

if (!(obj instanceof Course))//有了這個IF第一條if有啥用呢,只要這一個不就好了,只要他倆不是同一個類型就是False。

return false;

Course other = (Course) obj;//前面不是已經判斷了這倆個類型相等,為什么還要強制轉換

if (name == null) {

if (other.name != null)

return false;

} else if (!name.equals(other.name))

return false;

return true;

}


正在回答

2 回答

這樣寫比較通用,寫父類,比較一切子類都沒問題,如果只寫String類,那么其他類不是不能比較了么

0 回復 有任何疑惑可以回復我~

我的看法:首先地址相同肯定是true,其次在地址不相同的情況下,obj和Course類型不同,一定是false,最后,判斷歸判斷,只有將obj強轉為Course才能進行接下來的判斷

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第三季
  • 參與學習       409775    人
  • 解答問題       4546    個

Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧

進入課程

重寫的equals函數里面有問題,大神求解!!

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號