想要访问父类的私有成员:
通过GetSuperclass().getDeclaredField来获取父类生命的私有成员
通过setAccessible来设定该成员可访问
然后通过get和set方法取得和设定该成员
// 父类
public class ParentClass
{
private String name;
}
// 子类
import java.lang.reflect.Field;
public class ChildClass extends ParentClass
{
...
Field parentField = null;
try
{
// 获取父类的名字为“name”的成员
parentField= getClass().getSuperclass().getDeclaredField("name");
// 私有成员,设置为可访问
parentField.setAccessible(true);
// Get
String parentFiledValue = (String)parentField.get(this);
// Set
parentField.set(this, "ABC");
}
catch (Exception e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
...
}