Java反射:查找子类的字段

rou*_*tic 5 java reflection

我有一个类层次结构,如下所示:(=>表示"是"的子类")

anonymous instance class => abstract class => generic abstract class
Run Code Online (Sandbox Code Playgroud)

或者更简洁:

C => B => A
Run Code Online (Sandbox Code Playgroud)

执行时,"C"调用"A"方法之一.在"A"中的该方法中,我想使用反射来查找在类"B"中定义的对象的受保护字段.(所以这些是"C"和"B"可以看到的字段,但不是"A".)

我如何使用Java反射做到这一点?如果我在A&B或B&C之间添加一些东西,我怎么能面向未来呢?

Mic*_*rdt 13

您必须getDeclaredFields()在对象类(via getSuperclass())的继承层次结构中对每个类重复使用.

但是,你的计划听起来像是对继承概念的恶意违反.面向未来的最佳方法是完全避免这种事情.什么你想干什么,你认为需要这样的反思有心计?

  • 首先,我很生气.然后我试着解释我的目的是什么,但不能不讨论整个问题.然后我更生气了.然后,当我让我的儿子睡觉时,我看到我的问题可以通过让超类创建子对象并将它们存储在本地而不用反射就可以更清晰地解决.谢谢你穿着裤子. (9认同)