您可能会遇到两个问题-字段可能无法正常访问(私有),并且不在您正在查看的类中,而是位于层次结构中的某个位置。
这样的事情甚至可以解决这些问题:
public class SomeExample { public static void main(String[] args) throws Exception{ Object myObj = new SomeDerivedClass(1234); Class myClass = myObj.getClass(); Field myField = getField(myClass, "value"); myField.setAccessible(true); //required if field is not normally accessible System.out.println("value: " + myField.get(myObj)); } private static Field getField(Class clazz, String fieldName) throws NoSuchFieldException { try { return clazz.getDeclaredField(fieldName); } catch (NoSuchFieldException e) { Class superClass = clazz.getSuperclass(); if (superClass == null) { throw e; } else { return getField(superClass, fieldName); } } }}class SomebaseClass { private Integer value; SomebaseClass(Integer value) { this.value = value; }}class SomeDerivedClass extends SomebaseClass { SomeDerivedClass(Integer value) { super(value); }}


