我想在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());
}
}
}
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());
}
}
}
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());
}
}
}