如何在Java中创建一个匿名类的新实例

3

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

抛出一个名为“error”的错误。
java.lang.NoSuchMethodException: com.users.Delegates$4$1.<init>()
    at java.lang.Class.getConstructor0(Unknown Source)
    ... 2 more

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

0
创建一个实例,只需使用您的get方法即可。
User user = Delegates.ADMINUSER.get();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接