8
Javaのequals()メソッドのオーバーライド-機能しませんか?
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つのオブジェクトを作成し、データを入力します。で多くの追加、削除、has()操作を実行するCartと、すべてが正常に動作します。私はあなたが持ってequals(TYPE var)equals(Object o) { (CAST) var }いることができるか、しかしそれが働いていたのでそれはあまり問題ではなかったと仮定して読んだと読んだ。 それから私はこの問題に遭遇した-私が作成するために必要Bookでオブジェクトを唯一ID Bookクラス内からインチ 他のデータは入力されません。基本的には次のとおりです。 public boolean hasBook(int i) { Book b = new Book(i); return hasBook(b); } …
150
java
equals
overriding