为什么我会得到“非法泛型类型”?
鉴于:
public class C<T> {
private class D {
public boolean equals( Object o ) {
if ( !(o instanceof D) ) // line 4
return false;
D other = (D)o; // line 6
return i == other.i;
}
int i;
}
}
我得到:
C.java:4: illegal generic type for instanceof
if ( !(o instanceof D) )
^
我还收到了有关第 6 行的“未检查的投射”警告。为什么?它不是一个泛型类型 - 它只是一个普通的.如何通过检查和强制转换为 的实例来正确实现 ?o
Object
equals()
D
注意:显然,此代码示例是我的实际代码的缩减版本。和 的实数类要大得多,并且是其实现所使用的内部类。C
D
D
private
C
仅供参考:real确实利用了通用参数。D
T