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); } public boolean …
150
java
equals
overriding