在这个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/

10-09 17:53