Ein Objekt dynamisch erstellen, wobei der Klassenname als String angegeben wird

7

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,

    
Praveen 10.10.2012, 05:52
quelle

3 Antworten

8
  

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.)

    
Jon Skeet 10.10.2012 05:56
quelle
6

Verwenden Sie Class # newInstance ()

%Vor%

Sie können das dann auf Agent übertragen.

%Vor%     
Matthew Farwell 10.10.2012 05:54
quelle
5

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

    
MadProgrammer 10.10.2012 05:56
quelle

Tags und Links