Dynamisches Erstellen einer Instanz mithilfe von Klassennamen und Konstruktorparametern
In bestimmten Szenarien kann es erforderlich sein, eine Instanz einer Klasse zu erstellen erhält dynamisch seinen Klassennamen und stellt seinem Konstruktor Parameter zur Verfügung. Dies kann mit dem folgenden Ansatz erreicht werden:
Erhalten Sie das Klassenobjekt für den angegebenen Klassennamen:
Rufen Sie den Konstruktor der Klasse ab:
Erstellen Sie eine Instanz der Klasse mit dem Konstruktor:
Hier ist ein Beispiel, um diesen Prozess zu veranschaulichen:
Class<?> clazz = Class.forName("mypackage.MyClass"); Constructor<?> ctor = clazz.getConstructor(String.class); Object object = ctor.newInstance(new Object[] { "MyAttributeValue" });
Beachten Sie, dass dieser Ansatz die Bereitstellung eines vollständig qualifizierten Klassennamens erfordert, einschließlich aller verschachtelten Durch Dollarzeichen ($) getrennte Klassen. Um beispielsweise eine Instanz einer verschachtelten Klasse zu erstellen, würden Sie einen Klassennamen wie „foo.Outer$Nested“ verwenden.
Das obige ist der detaillierte Inhalt vonWie kann ich eine Klasse in Java mithilfe ihres Namens und ihrer Konstruktorparameter dynamisch instanziieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!