编写一个抽象类项目。抽象类是父类,包含equals方法。我的项目的一部分是创建一个布尔等于方法,比较3个子类的客户端ID(长),以确保它们不是任何重复ID。有一个实现代码的问题。以下是我到目前为止的内容
public static boolean equals(Object A, Object B, Object C) {
if(A.equals(B) || A.equals(C) || B.equals(C))
return true;
else
return false;
}
需要帮助将客户端ID的3个类值放入代码中,然后将代码合并到toString()方法中。
答案 0 :(得分:1)
您可以将方法更改为以下内容:
public static boolean equals(Object A, Object B, Object C) {
return A != null && B != null && C != null && (A.equals(B) || A.equals(C) || B.equals(C));
}
少数事情:
您拥有的任何地方:
if (cond) {
return true;
} else {
return false;
}
您只需返回cond
:return cond;
A != null && B != null && C != null
equals()
,A
和B
)上覆盖C
方法,并在equals中包含您要使用的字段(仅限id你的例子)答案 1 :(得分:1)
我没有得到你想要的东西,但我会小心翼翼:
static class Client {
private long id;
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (getClass() != obj.getClass()) return false;
Client oth = (Client) obj;
return oth.id == this.id;
}
Client(long id) {
this.id = id;
}
}
public static boolean equals(Object A, Object B, Object C) {
return A.equals(B) || A.equals(C) || B.equals(C);
}
public static void main(String[] args) {
Object c1 = new Client(4);
Object c2 = new Client(3);
Object c3 = new Client(2);
equals(c1, c2, c3);
}