我一直在学习“用Java思考”。我找到了以下代码:
class SetType {
int i;
public SetType(int n) { i = n; }
public boolean equals(Object o) {
return o instanceof SetType && (i == ((SetType)o).i);
}
public String toString() { return Integer.toString(i); }
}
我不明白这是怎么做的:
i == ((SetType)o).i
我知道
Object o
被强制转换为SetType
,但是关于“ .i”呢?如果有人明白这是什么意思,那就好了。
最佳答案
这段代码:
public boolean equals(Object o) {
return o instanceof SetType && (i == ((SetType)o).i);
}
是用相同的方式写同样的东西的简短形式:
public boolean equals(Object o) {
if (o instanceof SetType) {
SetType other = (SetType) o;
if (i == other.i) {
return true;
}
}
return false;
}
希望您会更容易理解。您可以简化此代码以获取原始代码。它们是等效的。