public class Tuple {
// ...
// ...
// ...
// Compare if Tuple is equal to specified object o
public boolean equals(Object o) {
// code goes here
}
// ...
}
我有一个Tuple对象的Tuple类,其中一个方法是检查一个对象是否等于一个Tuple对象。我不会指定什么决定了两个元组之间的相等性,但我很困惑的是如何处理equals()方法的参数参数是'Object'这一事实。显然,如果对象甚至不是Tuple,我会返回false - 这是最好的方法吗?
我知道有一些方法,例如instanceof和getClass,但这是正确/推荐的方法吗?
谢谢!
答案 0 :(得分:3)
if(!(o instanceof Tuple))
return false;
Tuple other = (Tuple) o;
...
答案 1 :(得分:0)
您需要将对象o
强制转换为Tuple
以比较Tuple
的属性。在转换之前,您应该使用Tuple
运算符来比较输入对象是否为instanceOf
类型。
答案 2 :(得分:0)
您必须检查您的业务需求,但在大多数情况下,如果类型不同,那么它将被视为不相等 - 您甚至无法比较其他对象,除非它是相同的类型/子类型。因此:
public boolean equals(Object o) {
if(! (o instanceof Tuple)) return false;
Tuple other = (Tuple) o;
// do your comparison logic here
}