public class ClassFieldTest {
public ClassFieldTest() {
List<String > kk = new ArrayList<>();
kk.add("123");
kk.add("456");
map.put("123", kk);
}
private static final Map<String ,Object> map = new HashMap<>();
}
public class ClassFieldTestSon extends ClassFieldTest{
}
反射方法一
public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException, InstantiationException {
// 获取ClassFieldTest中的map成员变量(属性)
Field map1 = ClassFieldTest.class.getDeclaredField("map");
// 如果成员变量为私有的,需要设置为 true
map1.setAccessible(true);
// 获取成员变量名称
String name = map1.getName();
ClassFieldTestSon son = new ClassFieldTestSon();
// 注意!!! 使用 Field 的 get方法,需要放入此类的实例对象,或者其子类的实例对象,才可以将此成员变量的值拿到。
Object o = map1.get(son);
System.out.println(name);
System.out.println(o);
}