Ich versuche, ein Objekt einer Klasse dynamisch zu erstellen, indem ich den Klassennamen als String sende. Ich habe in allen Java-Foren gesucht, aber ich konnte nicht die Antwort bekommen, die ich wollte. Hier ist meine Anforderung, Ich habe eine Klasse mit dem Namen Agent,
%Vor%Nun ist meine Frage, cls.getName () gibt mir den Klassennamen, aber jetzt möchte ich das Objekt für diese Klasse erstellen, also für die Employee-Klasse und die Agent-Klasse, aber wie kann ich das Objekt für sie erstellen? Die Zeichenfolge, die übergeben wird, kann etwas anderes von der anderen Methode sein, wie kann ich ein Objekt für solche Dinge erstellen.
Kann mir jemand helfen ....
Vielen Dank im Voraus,
aber jetzt möchte ich das Objekt für diese Klasse erstellen
Dann verwenden Sie die Class.newInstance()
Methode, wenn Sie niemals Konstruktoren mit Argumenten behandeln müssen, oder verwenden Sie Class.getConstructor(...)
oder Class.getConstructors()
ansonsten. (Rufen Sie Constructor.newInstance()
, um den Konstruktor aufzurufen.)
Verwenden Sie Class # newInstance ()
%Vor%Sie können das dann auf Agent übertragen.
%Vor% Mit der Begründung, dass die Klasse einen Standardkonstruktor hat (dh keine Parameter), können Sie einfach Class#newInstance
.
Wenn es Parameter hat, wird es etwas komplizierter.
Sie müssten einen Verweis auf die entsprechende Constructor
über Class#getConstructor
, übergibt die erwarteten Parameterklassen.
Sobald Sie das haben, können Sie Constructor#newInstance
übergeben Sie die entsprechenden Objekte
Tags und Links java