<分区>
Possible Duplicate:
Access to private inherited fields via reflection in Java
你好,我遇到了 java 反射初始化值的问题。
我有简单的类(class)
public class A extends B {
private String name;
}
public class B {
private String superName;
}
而且我还有简单的功能:
public void createRandom(Class<T> clazz , List<String> classFields){
try {
T object = clazz.newInstance();
for(String s : classFields){
clazz.getDeclaredField(s);
}
} catch(Exception e){
}
}
我的函数做其他事情但我有问题因为我有错误:
java.lang.NoSuchFieldException: superName
我如何使用反射设置所有类字段以及来自父类(super class)的字段??
我有所有类字段(也是继承的)并且我正在使用函数 field.set(Object obj, Object value)
但是这样我就不能设置继承的类字段:/
我在使用 Spring ReflectionUtils.doWithfield 获取所有类字段时没有遇到问题。
我将所有字段名称存储在 List<String> classField
中,所以我知道所有的 clazz 领域也继承了。但我的问题是如何为所有 clazz 字段设置值。