gpt4 book ai didi

java - 用多个 instanceof 测试覆盖 equals() 对不同的对象是否可行?

转载 作者:行者123 更新时间:2023-11-29 08:11:29 24 4
gpt4 key购买 nike

假设我有一个类,我必须在其中检查多种不同类型的对象。以下列方式覆盖 equals() 是否可行/可能?

public boolean equals(Object o){
if(o == null) return false;
if(o instanceof class1){
return this.class1.equals((class1) o);
if(o instanceof class2){
return this.class2.equals((class2) o);
...

}

这会有用吗?我在这里假设我在各自的类中创建了一个静态重载的 equals() 方法(尽管只要我转换,多态性可能会自动解决这个问题?)。

最佳答案

我非常怀疑,因为您可以通过这种方式轻松违反 equals 的传递性(x.equals(y) && x.equals(z) 暗示 y.equals(z) )

当然,除非你做了一个涉及所有类的非常完整的设置,但要做到这一点会很痛苦

关于java - 用多个 instanceof 测试覆盖 equals() 对不同的对象是否可行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7927282/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com