可能重复:
如何通过Java反射访问继承的私有字段
您好,我在使用Java反射时遇到了初始化值的问题。
我有一个简单的类:
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
如何使用反射设置所有类字段和超类字段?
我已经获取了所有类字段(包括继承的字段),并且正在使用函数field.set(Object obj, Object value)
,但是这种方式无法设置继承的类字段:/
我没有问题可以获取所有类字段,我正在使用Spring ReflectionUtils.doWithfield。我将所有字段名称存储在List<String> classField
中,因此我知道所有clazz字段也继承下来的字段。但我的问题是如何将值设置到所有clazz字段中。
createRandom()
的?clazz
和列表的值是什么? - amit