Я реализовал приложение, которое имитирует магазин в java со всей информацией, размещенной в базе данных, созданной на SQL. Моя проблема связана с техникой отражения, которую я должен реализовать, чтобы показать список элементов из таблицы.
Я попробовал этот метод (первый ответ, тот, который с метаданными)
Самый простой код для заполнения JTable из ResultSet
Однако мне сказали, что это не метод отражения.
Я сделал это, руководствуясь учителем. Но я понятия не имею, как на самом деле вызвать его в моей функции и откуда должен появиться «объект».
Первая функция возвращает заголовки, а вторая извлекает информацию и создает таблицу.
public class ReflectionExample {
protected static final Logger LOGGER = Logger.getLogger(ClientDao.class.getName());
public static ArrayList retrieveProperties(Object object) {
ArrayList<String> ob = new ArrayList<String>();
Class obiect = object.getClass();
int i = 0;
for (Field field : object.getClass().getDeclaredFields()) {
field.setAccessible(true); // set modifier to public
ob.add(field.getName());
i++;
}
return ob;
}
public static JTable retrievePropertiesM(List<?> object, Object[]lit) {
Class obiect = object.getClass();
Object [][] matrice = new Object[object.size()][20];
//Object[] lit=null;
int row = 0;
for (Object o : object) {
int col = 0;
for (Field field : o.getClass().getDeclaredFields()) {
field.setAccessible(true); // set modifier to public
Object value;
try {
value = field.get(object);
matrice[row][col]=value;
//lit[col]=field.getName();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
col++;
}
row++;
}
// Object[] lit=retrieveProperties(object);
JTable t = new JTable(matrice,lit);
return t;
}
}
Однако я сомневаюсь, почему первый сделанный мной способ не был отражением?
В общем, я не понимал, что означает отражение, кроме того, что метод с отражением может быть вызван любым типом объекта из базы данных.
Некоторые объяснения или, может быть, где-то я могу лучше понять отражение?