Java 构造泛型类的新实例

Java 构造泛型类的新实例,java,generics,Java,Generics,为什么这不起作用 class MyClass<GenericClass> { GenericClass myInstance; MyClass() { myInstance = new GenericClass(); } } class-MyClass{ 泛型类myInstance; MyClass(){ myInstance=新的GenericClass(); } } 我在“new”上收到一条“cannotinstantiate”编译时错误消息。即使我确定

为什么这不起作用

class MyClass<GenericClass> {
  GenericClass myInstance;

  MyClass() {
    myInstance = new GenericClass();
  }
}
class-MyClass{
泛型类myInstance;
MyClass(){
myInstance=新的GenericClass();
}
}
我在“new”上收到一条“cannotinstantiate”编译时错误消息。即使我确定有一个无参数构造函数


跟进:有没有更好的方法来解决这个问题?或者我是被迫这样做的(假设我已将setMyInstance()方法添加到MyClass中)

其他类{
...
...
}
MyClass mine=新的MyClass();
setMyInstance(新的Other());
这并不伟大,因为我被迫在它之外公开MyClass的实现

有什么更好的处理方法吗?

又来了!

两个字:


类型参数的具体值在运行时不可用,因此无法知道要实例化的类型。此外,也不能保证有可调用的无参数构造函数可供使用。

这就是问题所在。因为您将无法在运行时访问类型参数,因此禁止您在编译时编写此代码时间
class Other {
...
...
}

MyClass<Other> mine = new MyClass<Other>();
mine.setMyInstance(new Other());