我有一个这样的类层次结构:(=> 表示“是的子类”)
anonymous instance class => abstract class => generic abstract class
或更简洁:
C => B => A
执行时,“C”调用“A”的方法之一。在“A”中的那个方法中,我想使用反射来查找类“B”中定义的对象的 protected 字段。 (所以这些是“C”和“B”可以看到的字段,但“A”看不到。)
我如何使用 Java 反射来做到这一点?如果我在 A 和 B 或 B 和 C 之间添加一些东西,我如何才能让它面向 future ?
最佳答案
你必须使用 getDeclaredFields()
在对象类的继承层次结构中的每个类上重复(通过 getSuperclass()
)。
但是,您的计划听起来像是对继承概念的严重违反。面向 future 的最好方法是完全避免这种事情。 是你想做什么,你认为需要这样的反射(reflection)恶作剧?
关于Java 反射 : Find fields of a subclass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2172263/