我正在尝试理解泛型。在下面的代码中,getDuplicate() 返回类型PlaceHolder<X,X>
具有相同的参数 X,可以很好地编译。但是当我在其中使用相同的参数类型时,MyClass<T,T>
它会显示“类型变量 T 已定义”。有人可以解释如何使用 getDuplicate 方法吗?
class PlaceHolder<K,V> {
public K k;
public K v;
public PlaceHolder(K k, K v){
this.k = k;
this.v = v;
}
public K get(){ return k; }
public static <X> PlaceHolder<X,X> getDuplicateHolder(X x){
return new PlaceHolder<X,X>(x,x);
}
}
class MyTest<T,T> {}