小编You*_*ndy的帖子

无法使用常规Class实例化类型

所以我有一节课:

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
}
Run Code Online (Sandbox Code Playgroud)

当我试着打电话时:

controler.addOverridingModule(new DynQSimModule<>(AMoDQSimProvider.class));
Run Code Online (Sandbox Code Playgroud)

Eclipse告诉我它"无法推断DynQSimModule <>的类型参数.我明白这是因为我没有在<>中添加任何内容,但我构建的示例代码使用相同的语法并且运行完全正常...

当我输入类似的东西:

controler.addOverridingModule(new DynQSimModule<? extends Mobsim(AMoDQSimProvider.class));
Run Code Online (Sandbox Code Playgroud)

Eclipse告诉我:"无法实例化DynQSimModule类型."

我知道当你尝试实例化一个接口或抽象类时这是一个问题,但DynQSimModule既不是那些......

任何帮助都会很棒.

谢谢!

java eclipse generics type-inference

5
推荐指数
1
解决办法
565
查看次数

标签 统计

eclipse ×1

generics ×1

java ×1

type-inference ×1