"Durchlaufen" durch Methoden
Sagen wir, ich habe ein Java-Objekt, das unter anderem die folgenden Methoden:
public String getField1();
public String getField2();
public String getField3();
public String getField4();
public String getField5();
Gibt es eine Möglichkeit zum iterieren durch diese Methoden, und rufen Sie 'em wie der folgende code?
String fields = "";
for(int i = 1; i <= 5; i ++){
fields += object.(getField+i) + " | ";
}
Danke für Eure kommenden Ideen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist ein Weg, mit der spiegelung:
Jedoch:
Dieses Geschäft alle Gerüche von schlechten Programmierstil!
Kannst du nicht umschreiben, alle
getFieldN()
Methoden wie diese?Sind Sie ärger bringen, durch die Schaffung nummeriert Methoden. Denken Sie daran, dass die Reflexion ist langsam und sollte nur verwendet werden, wenn die String-basierte Methode Aufrufe sind absolut unerlässlich, um den Ablauf des Programms. Manchmal benutze ich diese Technik für die benutzerdefinierte scripting-Sprachen, wo Sie haben, um eine Methode mit Namen. Das ist nicht der Fall bei allen hier, Ihre Anrufe werden integer indiziert. Sie sollten daher halten die integer als parameter.
Wenn dies der legacy-code und Sie sind absolut nicht in der Lage, dies zu ändern, schlechte Codierung, dann könnten Sie besser dran, das erstellen einer neuen Methode
getMethod(int)
als oben zu wickeln, die bestehenden Methoden, dass nur die Delegierten der numeriertengetMethodN()
Methoden.Sehen diese Anleitung für Referenz.
method.getName()
und aufmethod.getParameterTypes()
Zu können, wählen Sie spezifische Felder und Bestellung sollten Sie angeben, Sie also von einer Liste von Feldnamen.