gpt4 book ai didi

java - 使用泛型时是否需要使用 'instanceOf'?

转载 作者:搜寻专家 更新时间:2023-11-01 02:20:56 28 4
gpt4 key购买 nike

我无法弄清楚如何使用泛型编写我的 equals 方法,因为我确定是否有必要使用 instanceOf。我试图比较两个 ItemPairs 是相同的(逻辑上等价的)如果这对中的两个项目是相同的(逻辑上等价的)

这是我的尝试:

public class ItemPair<T> { 

private T item1;
private T item2;

public ItemPair(T item1, T item2) {
this.item1 = item1;
this.item2 = item2;
}

public T getItem1() {
return item1;
}

public void setItem1(T item1) {
this.item1 = item1;
}

public T getItem2() {
return item2;
}

public void setItem2(T item2) {
this.item2 = item2;
}

@Override
public boolean equals(Object obj) {
if(obj instanceof T) {
return this.item1.equals(this.item2);
} else {
return false;
}
}

}

最佳答案

您的equals 方法不应确定第一项是否等于同一ItemPair 对象的第二项。它应该确定两个 ItemPair 是否彼此相等:

public boolean equals(Object obj) {
if (this == obj)
return true;
if (!(obj instanceof ItemPair))
return false;
IterPair other = (IterPair) obj;
return this.item1.equals(other.item1) && this.item2.equals(other.item2);
}

对于其中一项为空的情况,可能需要一些附加条件。

关于java - 使用泛型时是否需要使用 'instanceOf'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43715352/

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