如何在Java

时间:2016-07-14 10:09:53

标签: java

我尝试在运行时从匿名类创建一个对象。但是当我试图调用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

请告诉我如何在运行时从匿名类创建实例。

1 个答案:

答案 0 :(得分:0)

要创建实例,只需使用get方法:

User user = Delegates.ADMINUSER.get();