求助,怎样在父类中获得子类的某个属性,并且能够访问这个属性对象的内部属性

yetihan 2009-07-25 12:15:09
我想在strust2的中添加代码,获得继承这个抽象类的子类的某些属性,现在使用反射方式可以得到子类的Field[],在Field[]中有我需要的属性,但怎样才能获得这个属性实际的对象呢?
app.model.FUserBondType子类中是属性的类型

Field[] fields = this.getClass().getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
String fieldType = fields[i].getType().toString();
log.debug(fieldType);

if(fieldType.equals("app.model.FUshouseLoanBondType") > 0){
log.debug("name" + fields[i].getName());
fields[i].setAccessible(true);
Object c = fields[i].get(this);
Field[] field = c.getClass().getDeclaredFields();

for (int j = 0; j < field.length; j++) {
log.debug("FUshouseLoanBondType.field.name" + field[j].getName());
log.debug("FUshouseLoanBondType.field.type" + field[j].getType().toString());
}

Method[] ms = c.getClass().getMethods();
for (int k = 0; k < field.length; k++) {
log.debug("FUshouseLoanBondType.method" + ms[k].getName());
}
}
}
...全文
228 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yetihan 2009-07-27
  • 打赏
  • 举报
回复
已经解决
Field[] fields = this.getClass().getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
String fieldType = fields[i].getType().toString();
log.debug(fieldType);
//匹配对象类型
if(fieldType.indexOf("app.model.FUshouseLoanBondType") > 0){
fields[i].setAccessible(true);
Object object = fields[i].get(this);
Map propertyMap = org.apache.commons.beanutils.BeanUtils.describe(object);
Iterator it = propertyMap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
//获得属性名称
String propertyName = String.valueOf(entry.getKey());
//获得属性值
String propertyValue = String.valueOf(entry.getValue());
}
}
}
ZhaoHuiZiXin 2009-07-25
  • 打赏
  • 举报
回复
关注..

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧