我面临的问题是通过反射来获取类的所有字段的值。
我有一个类可以有任意数量的字段,任意数量的类,而这些类又可以有任意数量的字段,如下所示
public class A{
String string;
int number;
HashMap<String,String> map;
B bclass;
}
B 以上又是 A 类的类成员。
- 我想获取字符串类型的字段及其值,如果字段是类
- 如果 field 再次是Class,则获取 fields 和 values ,例如map属性是HashMap类类型,那么我需要String类型的 key 和 value 属性。
请查看我的代码片段以解决上述问题
private void extractStringFields(Object object) throws IllegalAccessException {
for (Field field : object.getClass().getDeclaredFields()) {
field.setAccessible(true);
System.out.println("filesd : "+field.getName());
Object value = field.get(object);
if (field.getType().equals(String.class)) {
System.out.println(field.getName() + "=" + value);
}
extractStringFields(field);
}
}
但不幸的是,它不起作用,请帮助我。