当类具有类型参数时,构造函数的java类型推断抛出错误
我对泛型概念很陌生,在下面的代码中遇到了这个问题
public class Main
{
static class GenericCheck<X>{
private X x;
<T> GenericCheck(T t){
x=t;
System.out.println(t);
}
public void display(){
System.out.println(x);
}
}
public static void main(String[] args) {
GenericCheck<String> genericCheck = new GenericCheck("sathish worked");
}
}
抛出错误:
Main.java:14: error: incompatible types: T cannot be converted to X
x=t;
有谁能帮我解决这个问题吗。提前谢谢
# 1 楼答案
如果没有声明任何关系,JVM就不能执行x=t。 您可以通过显式强制转换来覆盖错误,如
# 2 楼答案
由于
T
与X
没有任何关联,因此编译器无法知道它们是相互关联的现在还不清楚你想用
T
做什么,X
就足够了:但是如果您想要
T
,它需要以某种方式与X
相关,例如:。。。但是,除非对
T
有其他约束,否则没有理由这样做,因为在上面第一个代码块中的类的构造过程中,您已经可以提供X
的子类。这很好,例如: