На работе мы должны создать отчет для нашего клиента, который несколько раз меняет его параметры в течение недели. Этот отчет создается из одной таблицы в нашей базе данных. Например, представьте таблицу, в которой есть 100 столбцов, и сегодня мне нужно создать отчет с 5 столбцами, но завтра я должен сгенерировать 95 из них. Учитывая это, я создал класс TO со всеми столбцами указанной таблицы, и мой запрос возвращает все столбцы (SELECT * FROM TABLE).Вызывать методы динамически на Java
То, что я пытаюсь создать, является динамической формой для создания отчета. Сначала я подумал о создании простого фрейма со списком столбцов, перечисленных как флажки, и пользователь будет выбирать нужные ему столбцы (конечно, с помощью кнопки «Выбрать все», а другой - «Отменить выбор всех»).
Как все столбцы имеют такое же имя, что и атрибуты класса, я разработал следующий код (я имею Google это):
Class c = Test.class;
for(int i = 0; i < listOfAttributes.length; i++)
{
auxText += String.valueOf(c.getMethod("get" + listOfAttributes[i]).invoke(this, null));
}
ли это лучший способ сделать то, что мне нужно к?
Заранее спасибо.
Обс: у геттеров класса TO есть шаблон «getAttribute_Name».
Примечание: Этот вопрос отличается от того, в котором пользователь спрашивает, как вызвать метод, заданный определенным именем. Я знаю, как это сделать. Я спрашиваю, если это лучший способ решить проблему, которую я описал.
Возможный дубликат [Как вызвать метод Java когда задано имя метода как строка?] (http://stackoverflow.com/questions/160970/how-do-i-invoke-a-java-method-when-given-the-method-name-as-a -string) –
Как я уже сказал на заметке: Этот вопрос отличается от того, где пользователь спрашивает, КАК вызвать какой-то метод с определенным именем. Я знаю, как это сделать. Я спрашиваю, если это лучший способ решить проблему, которую я описал. –
Хорошо. Я заберу это. Отмечу, что ваше примечание было добавлено после того, как я впервые просмотрел его. –