2016-07-14 11 views
2

Ich habe versucht, ein Objekt aus anonymen Klasse in Laufzeit zu erstellen.aber wenn ich versuchte, newInstance() aufrufen, werfen Sie einen Fehler namens java.lang.NoSuchMethodException.Wie erstellt man eine neue Instanz der anonymen Klasse in Java

Anonym Klasse Implementierung

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"; 
} 
} 

erstellen Instanz von Runtime

Delegates.ADMINUSER.get().getClass().newInstance() 

werfen ein Fehler

java.lang.NoSuchMethodException: com.users.Delegates$4$1.<init>() 
    at java.lang.Class.getConstructor0(Unknown Source) 
    ... 2 more 

Bitte lassen Sie mich wissen, genannt, wie eine Instanz von anonymen Klasse in der Laufzeit zu erstellen.

Antwort

0

eine Instanz zu erstellen, verwenden Sie einfach Ihre get-Methode:

User user = Delegates.ADMINUSER.get(); 
Verwandte Themen