嗨,我有一些初始化如下...。它显示eclipse中的错误为类型不匹配。如果我通过命令提示符使用maven进行编译,则它将编译而没有任何错误..使用eclipse luna,并将编译器设置为java 1.7。
ReportData<Object> rdata = null;
rdata = new ReportData<>(reportCtx.get()); // error shown for this line in //eclipse.
ReportData<T>{
private T val;
public ReportData(T val){
this.val=val;
}
}
我不明白,为什么eclipse为此显示错误,以及它如何在maven中使用相同的Java 1.7进行编译。
rdata = new ReportData<>(reportCtx.get());
初始化有什么问题。 最佳答案
ReportData<?>
是所有报告数据的超类型。ReportData<Object>
不是所有报告数据的超类型。
因此,您不能分配:ReportData<Object>
←ReportData<of an unknown kind>
请参见The Java™ Tutorials , Generics, Wildcards。
和顺便说一句,除了...
ReportData<Object> rdata = new ReportData<Object>(reportCtx.get());
...在...中的不同声明
ReportData<?> rdata = new ReportData<>(reportCtx.get());
...也可以解决问题。