【发布时间】:2016-07-06 02:49:07
【问题描述】:
所以我有课:
public class DynQSimModule<T extends Mobsim> extends AbstractModule
{
private Class<? extends javax.inject.Provider<? extends T>> providerClass;
public DynQSimModule(Class<? extends javax.inject.Provider<? extends T>> providerClass)
{
this.providerClass = providerClass;
}
//some methods down here
}
当我尝试打电话时:
controler.addOverridingModule(new DynQSimModule<>(AMoDQSimProvider.class));
Eclipse 告诉我它“无法推断 DynQSimModule 的类型参数。我理解这是因为我没有在 中添加任何内容,但是我构建的示例代码使用相同的确切语法并且运行良好...
当我输入类似的内容时:
controler.addOverridingModule(new DynQSimModule<? extends Mobsim(AMoDQSimProvider.class));
Eclipse 告诉我:“无法实例化类型 DynQSimModule。”
我知道当您尝试实例化接口或抽象类时会出现问题,但 DynQSimModule 两者都不是...
任何帮助都会很棒。
谢谢!
【问题讨论】:
-
使用菱形运算符很好。我在 eclipse mars 中遇到过这个错误消息,真正的原因实际上是缺少导入。确保您没有任何错误,例如缺少 AMoDQSSimProvider 的导入或奇怪的类名中的拼写错误等。
-
你的jdk版本是多少?
-
我刚刚安装了最新版本的 JDK,并从我的终端得到了这个:'java version "1.8.0_91" Java(TM) SE Runtime Environment (build 1.8.0_91-b14) Java HotSpot(TM ) 64 位服务器 VM(内部版本 25.91-b14,混合模式)' 我仍然遇到“无法推断类型”的问题......
标签: java eclipse generics type-inference