无法在Java中实例化泛型类型实例
可能重复:无法在Java中实例化泛型类型实例,java,generics,Java,Generics,可能重复: 我有点麻烦。我无法在默认构造函数中实例化泛型类型实例。 这是我的班级 public class MyClass<U extends MyUser> { private U user; public U getUser() { return this.user; } public void setUser(U user) { this.user = user; } public MyCl
我有点麻烦。我无法在默认构造函数中实例化泛型类型实例。 这是我的班级
public class MyClass<U extends MyUser> {
private U user;
public U getUser() {
return this.user;
}
public void setUser(U user) {
this.user = user;
}
public MyClass() {
this.user = new U();
}
}
公共类MyClass{
私人用户;
公共用户{
返回此.user;
}
公共无效设置用户(U用户){
this.user=用户;
}
公共MyClass(){
this.user=new U();
}
}
在代码行this.user=new U()
中,我遇到异常
无法实例化类型U
。如何创建U的新实例
提前感谢您需要在实例化用户时指定类型。该类型必须是MyUser或MyUser的子类型
public class MyClass<U extends MyUser>{
private U user;
public U getUser(){
return this.user;
}
public void setUser(U user){
this.user=user;
}
public MyClass() {
this.user=new MyClass<U>();
}
}
公共类MyClass{
私人用户;
公共用户{
返回此.user;
}
公共无效设置用户(U用户){
this.user=user;
}
公共MyClass(){
this.user=new MyClass();
}
}
Java泛型在运行时不知道其模板参数的类型。因此,在您的示例中,U
的运行时类型未知,因此构造函数无法执行new U()
您需要将
U
(类似Foo.class
)的类型传递给constructor,以便它知道如何创建U
类型的新obejct。您可以为我的代码编写类型实例的创建吗?提前谢谢。