Kann ich in Java ein Klassenobjekt verwenden, um Klassen dieses Typs dynamisch zu instanziieren?Klasse aus Klassenobjekt instanziieren
ich möchte eine Funktion wie diese.
Object foo(Class type) {
// return new object of type 'type'
}
Kann ich in Java ein Klassenobjekt verwenden, um Klassen dieses Typs dynamisch zu instanziieren?Klasse aus Klassenobjekt instanziieren
ich möchte eine Funktion wie diese.
Object foo(Class type) {
// return new object of type 'type'
}
können Sie Class.newInstance
verwenden:
Object foo(Class type)
throws InstantiationException, IllegalAccessException {
return type.newInstance();
}
... aber das setzt voraus, ein Konstruktor Null-Argument ist. Eine robustere Route besteht darin, durch Class.getConstructor
oder Class.getConstructors
zu gehen, die Sie in die Verwendung der Reflection-Stuff im java.lang.reflect
-Paket nimmt.
Verwendung:
type.newInstance()
Für eine Instanz mit dem leeren costructor erstellen oder verwenden Sie die Methode type.getConstructor (..), um den entsprechenden Konstruktor zu bekommen und es dann aufrufen.
Ja, es heißt Reflexion. Sie können dazu die Methode newInstance()
verwenden.
Verwenden Sie die newInstance() - Methode.
Sie können mehr darüber lesen unter: http://java.sun.com/docs/books/tutorial/reflect/index.html Auch dieser Beitrag hat sehr gute Informationen: http://stackoverflow.com/questions/37628/was-ist-reflexion-und-warum-ist-es-nützlich – RonK