这个方法与instanceof有什么用?

时间:2018-03-26 15:42:21

标签: java methods boolean equals instanceof

我想知道这种方法是如何工作的?特别是这段代码"((书)o).getId()"

public boolean equals(Object o){
    if (o instanceof Book){
        return id == ((Book) o).getId();
    }
    return false;
}

谢谢

3 个答案:

答案 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,这是一本书。