日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java中que_重写java Eques()方法-不工作吗?

發布時間:2025/4/5 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中que_重写java Eques()方法-不工作吗? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

重寫java Eques()方法-不工作嗎?

我遇到了一個有趣的(非常令人沮喪的)問題equals()方法,它導致了我認為經過良好測試的類崩潰,并導致了一個錯誤,我花了很長時間才找到它。

為了完整起見,我沒有使用IDE或調試器-只是好的老式文本編輯器和System.out。時間非常有限,這是一個學校項目。

總之-

我正在開發一個基本的購物車,它可以包含一個ArrayList的Book對象..為了實現addBook(),?removeBook(),和hasBook()購物車的方法,我想檢查一下Book已經存在于Cart..所以我走了-public?boolean?equals(Book?b)?{

...?//?More?code?here?-?null?checks

if?(b.getID()?==?this.getID())?return?true;

else?return?false;}

所有的測試都很好。我創建了6個對象并用數據填充它們。控件上的許多添加、移除和帶()操作。Cart一切都很好。我讀到你可以要么有equals(TYPE var)或equals(Object o) { (CAST) var }但認為既然起作用了,就沒什么大不了的了。

然后我遇到了一個問題-我需要創建一個Book對象只這個ID在它里面的書類。沒有其他數據可輸入。基本上如下:public?boolean?hasBook(int?i)?{

Book?b?=?new?Book(i);

return?hasBook(b);}public?boolean?hasBook(Book?b)?{

//?..?more?code?here

return?this.books.contains(b);}

突然,equals(Book b)方法不再起作用。如果沒有良好的調試器,這需要很長時間才能找到,并且假設Cart班級經過了適當的測試和修正。擦拭后equals()方法:public?boolean?equals(Object?o)?{

Book?b?=?(Book)?o;

...?//?The?rest?goes?here???}

一切又開始運轉了。這個方法決定不接受Book參數是有什么原因的,盡管它很清楚曾.?a?Book反對?唯一的區別似乎是它是從同一個類中實例化的,并且只填充了一個數據成員。我很困惑。拜托,放點光?

總結

以上是生活随笔為你收集整理的java中que_重写java Eques()方法-不工作吗?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。