我尝试在运行时从匿名类创建一个对象。但是当我试图调用newInstance()
时,它会抛出一个名为java.lang.NoSuchMethodException
的错误。
匿名类实施
public enum Delegates implements Supplier<User> {
ADMINUSER {
@Override
public User get() {
return new User(){
@Override
public String getRole() {
return "Admin";
}
};
}
}
User.Java
public class User{
public String getRole() {
return "Student";
}
}
从运行时创建实例
Delegates.ADMINUSER.get().getClass().newInstance()
抛出一个名为
的错误java.lang.NoSuchMethodException: com.users.Delegates$4$1.<init>()
at java.lang.Class.getConstructor0(Unknown Source)
... 2 more
请告诉我如何在运行时从匿名类创建实例。
答案 0 :(得分:0)
要创建实例,只需使用get方法:
User user = Delegates.ADMINUSER.get();