Java 反射 : Find fields of a subclass

标签 java reflection

我有一个这样的类层次结构:(=> 表示“是的子类”)

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/

相关文章:

java - 返回 Activity 时检索对象

JavaFX SceneBuilder 将无法启动

java - 将月份名称转换为日期范围

java - 结合 MethodHandles.publicLookup() 与 Method.setAccessible(true)

Java List 无法检索超过 90.000 个元素

java - 开关内部打印

c# - 如何知道一个类的属性类型是否是自定义的

reflection - 在 Go 中使用反射设置 slice 索引

c# - 在编译时获取非静态方法的 MethodInfo

reflection - 反射怎么可能不会导致代码异味呢?