我想知道这种方法是如何工作的?特别是这段代码"((书)o).getId()"
public boolean equals(Object o){
if (o instanceof Book){
return id == ((Book) o).getId();
}
return false;
}
谢谢
答案 0 :(得分:0)
首先,if语句验证变量 o 是否是Book类的实例。
if (o instanceof Book)
其次,如果 o 是一本书,那么我们可以把它投入一本书。 下面的代码返回一个Book对象:
Book myVar = (Book) o;
第三,我们可以在 myVar 中调用Book方法。例如:
myVar.getId()
您发布的代码在一行中完成了所有这些操作。 Cast,调用Book方法并返回响应。
答案 1 :(得分:0)
public boolean equals(Object o){ //method is passed an object
if (o instanceof Book){ // It checks to see if the object passed to this method is of type 'Book'
return id == ((Book) o).getId(); //Now that you know the object is a book, you can cast 'o' to be a 'Book'. This allows you to call methods which belong to 'Book', such as getId().
}
return false; // If not a 'Book' Return false.
希望这有帮助。
答案 2 :(得分:-1)
instanceof
语法检查第一个对象是否实现或扩展第二个对象。如果是,则返回true。然后,由于它 一本书,它获取对象的ID,这是一本书。