我想检索实例变量“customerId”的值。我有一套返回此字段的api。在一些apis中,这个字段位于基类之下。在某些情况下,它嵌套在以下几个级别。有没有办法按字段名称“customerId”获取值,而不管实例变量在哪里?
例如
Customer
customerId
Order
Customer
customerId
Account
Order
customerId
答案 0 :(得分:0)
试试这个:
public static Map<Field, Integer> getFieldWithName(Object o, Map<Field, Integer> list) throws IllegalAccessException {
Class<?> c = o.getClass();
for(Field field : c.getDeclaredFields()) {
if(field.getName().equals("customerId") && field.getType().equals(int.class)) {
list.put(field, field.getInt(o));
} else {
if(!field.isAccessible()) {
field.setAccessible(true);
}
getFieldWithName(field.get(o), list);
}
}
return list;
}
这将返回一个Map,其中包含名为customerId的字段以及存储在此字段中的值。 GL!