有没有办法获取 Java Bean 字段的 Object 数组?我有一些代表数据库表(休眠)的bean类,我需要从中检索jtable模型的对象数组,但似乎唯一的方法是为每个类的每个字段调用getXXX方法 - 很多要做的工作。
问问题
2182 次
2 回答
5
如果您想要一种从 bean 中提取值的通用方法,您应该查看自省(包“java.lang.reflect”)。
这是一个基本示例:
Field[] fields = ABeanClass.getDeclaredFields();
Object[] values = new Object[fields.length];
int i = 0;
for (Field field : fields) {
values[i] = field.get(beanInstance);
i++;
}
于 2012-04-07T20:03:38.747 回答
0
我这样做的方法是使用“控制器”类来处理模型和数据库之间的所有通信。
您制作“对象”列表,例如 private List myList = null; 现在,在控制器类中编写一个通用方法。说 getList ,它返回列表。您将相关类传递给该方法,它使用休眠会话返回您的列表。在你的 bean 中,这样做
myList = myController.getList(YourBean.class);
这应该是您的 getlist 方法。
public List getList(Class c) throws BaseExceptionHandler {
Session session = null;
Transaction tx = null;
String query = null;
List list = null;
try {
query = getStringQuery(c);
if (query != null) {
session = sessFactory.openSession();
tx = session.beginTransaction();
list = (List) session.createQuery(query).list();
tx.commit();
}
} finally {
if (session != null) {
session.close();
}
}
return list;
}
干杯:)
于 2012-04-07T20:24:54.447 回答