【发布时间】:2018-09-04 19:58:51
【问题描述】:
我想知道这个方法是如何工作的?尤其是这部分代码“((Book)o).getId()”
public boolean equals(Object o){
if (o instanceof Book){
return id == ((Book) o).getId();
}
return false;
}
谢谢
【问题讨论】:
-
如果
o是Book的一个实例,它会将o转换为Book并获取其ID。哪个方面让您感到困惑? -
查找“铸造”。你得到一个
Object参数,检查它是否是Book类型(使用instanceof),如果是,你将它转换为Book,这样你就可以调用Book方法(getId())它。 -
它实际上是
Book b = (Book) o;return id == b.getId();的简写形式Object没有getId()方法,但Book有。o instanceof Book用于确保o是Book类型或者是Book的子类型。
标签: java methods boolean equals instanceof