Bei der Arbeit müssen wir einen Bericht für unseren Kunden generieren, der seine Parameter mehrmals während der Woche ändert. Dieser Bericht wird aus einer einzelnen Tabelle in unserer Datenbank generiert. Stellen Sie sich zum Beispiel eine Tabelle mit 100 Spalten vor, und ich muss heute einen Bericht mit nur 5 Spalten erstellen, aber morgen muss ich mit 95 Spalten generieren. In diesem Sinne habe ich eine TO-Klasse mit allen Spalten der angegebenen Tabelle erstellt und meine Abfrage gibt alle Spalten zurück (SELECT * FROM TABLE).Methoden dynamisch auf Java aufrufen
Was ich versuche zu erstellen, ist ein dynamisches Formular, um den Bericht zu generieren. Ich dachte zuerst über einen einfachen Rahmen mit einer Liste der Spalten als Kontrollkästchen angezeigt, und der Benutzer würde die Spalten auswählen, die er will (natürlich mit einer Schaltfläche auf Alles auswählen und eine andere auf Auswahl aufheben).
Wie alle Spalten den gleichen Namen wie die Attribute der Klasse TO haben, entwickelte ich den folgenden Code (Ich habe Google diese):
Class c = Test.class;
for(int i = 0; i < listOfAttributes.length; i++)
{
auxText += String.valueOf(c.getMethod("get" + listOfAttributes[i]).invoke(this, null));
}
Ist dies der bessere Weg zu tun, was ich brauche zu?
Vielen Dank im Voraus.
Obs .: Die Getter der TO-Klasse haben das Muster "getAttribute_Name".
Hinweis: Diese Frage unterscheidet sich von der Frage, bei der der Benutzer fragt, wie eine Methode mit einem bestimmten Namen aufgerufen werden soll. Ich weiß, wie das geht. Ich frage, ob dies der bessere Weg ist, das von mir beschriebene Problem zu lösen.
Mögliche Duplikat [Wie rufe ich eine Java-Methode wenn der Methodenname als String angegeben wurde?] (http://stackoverflow.com/questions/160970/how-doi-i-voke-a-java-method-when-given-the-method-name-as-a -string) –
Wie ich auf der Anmerkung sagte: Diese Frage unterscheidet sich von der, wo der Benutzer fragt, wie man eine Methode anruft, die einen bestimmten Namen gegeben wird. Ich weiß, wie das geht. Ich frage, ob dies der bessere Weg ist, das von mir beschriebene Problem zu lösen. –
Okay. Ich werde das zurücknehmen. Ich werde feststellen, dass Ihre Notiz nach der ersten Überprüfung hinzugefügt wurde. –