这个方法和 instanceof 有什么关系?
What does this method work with instanceof?
我想知道这个方法是如何工作的?尤其是这部分代码 "((Book) o).getId()"
public boolean equals(Object o){
if (o instanceof Book){
return id == ((Book) o).getId();
}
return false;
}
谢谢
instanceof
语法检查第一个对象是否实现或扩展了第二个对象。如果是,则 returns 为真。然后,因为它是一本书,它得到对象的ID,这是一本书。
首先,if 语句验证变量 o 是否是 Book class.
的实例
if (o instanceof Book)
其次,如果 o 是一本书,那么我们可以将它转换成一本书。
下面的代码 return Book 对象:
Book myVar = (Book) o;
第三,我们可以调用 myVar 中的 Book 方法。例如:
myVar.getId()
您发布的代码在一行中完成了所有这些。 Cast,调用 Book 方法和 return 响应。
public boolean equals(Object o){
if (o instanceof Book){
return id == ((Book) o).getId();
}
return false;
}
向方法传递一个对象,instanceof
检查传递给方法的对象是否为Book
类型。
如果对象是 Book
类型,那么它使您能够安全地将对象转换为 Book
.
现在对象是 Book
- 您可以使用 Book
class 具有的方法。
如果 Book
对象 o
与 id
具有相同的值 - 它将 return true
否则 false
.
如果对象不是一本书,它将return false
作为默认值。
我想知道这个方法是如何工作的?尤其是这部分代码 "((Book) o).getId()"
public boolean equals(Object o){
if (o instanceof Book){
return id == ((Book) o).getId();
}
return false;
}
谢谢
instanceof
语法检查第一个对象是否实现或扩展了第二个对象。如果是,则 returns 为真。然后,因为它是一本书,它得到对象的ID,这是一本书。
首先,if 语句验证变量 o 是否是 Book class.
的实例if (o instanceof Book)
其次,如果 o 是一本书,那么我们可以将它转换成一本书。 下面的代码 return Book 对象:
Book myVar = (Book) o;
第三,我们可以调用 myVar 中的 Book 方法。例如:
myVar.getId()
您发布的代码在一行中完成了所有这些。 Cast,调用 Book 方法和 return 响应。
public boolean equals(Object o){
if (o instanceof Book){
return id == ((Book) o).getId();
}
return false;
}
向方法传递一个对象,instanceof
检查传递给方法的对象是否为Book
类型。
如果对象是 Book
类型,那么它使您能够安全地将对象转换为 Book
.
现在对象是 Book
- 您可以使用 Book
class 具有的方法。
如果 Book
对象 o
与 id
具有相同的值 - 它将 return true
否则 false
.
如果对象不是一本书,它将return false
作为默认值。