2016-07-14 3 views
2

Я попытался создать объект из анонимного класса в runtime.but, когда я попытался позвонить newInstance(), он выдает ошибку под названием java.lang.NoSuchMethodException. РеализацияКак создать новый экземпляр анонимного класса в Java

анонимный класс

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

Чтобы создать экземпляр, просто использовать метод GET:

User user = Delegates.ADMINUSER.get();