在这个What is the equivalent of the C++ Pair<L,R> in Java?问题中,有我将在代码中使用的示例代码
public boolean equals(Object other) {
if (other instanceof Pair) {
Pair otherPair = (Pair) other;
return
(( this.first == otherPair.first ||
( this.first != null && otherPair.first != null &&
this.first.equals(otherPair.first))) &&
( this.second == otherPair.second ||
( this.second != null && otherPair.second != null &&
this.second.equals(otherPair.second))) );
}
return false;
}
Eclipse在“Pair otherPair =(Pair)other;”行中警告我。 “对是原始类型。对泛型类型Pair的引用应参数化”。我尝试将其重写为“Pair otherPair =(Pair )other;”。但是警告仍然存在。如何正确键入和其他,以便不会出现任何警告?谢谢!
最佳答案
您可以使用
Pair<?, ?> otherPair = (Pair<?, ?>)other;
由于equals带有一个Object,因此不会有任何麻烦。在此特定代码中,类型参数无关紧要。
关于java - Java泛型类的正确类型强制转换(或任何其他方法),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5009883/