在类加载中的每个子类中执行代码

时间:2017-03-26 15:52:49

标签: java reflection

我正在尝试在加载类后在类的每个子类中执行相同的代码。我需要使用反射扫描类字段以生成数据容器/类的大纲。

有没有办法在没有在每个子类初始化时调用超类的方法的情况下执行此操作? (例如,继承超类的静态初始值设定项)

编辑:我正在编写一个管理一些数据对象的库。当我想在其中存储更多数据时,我通常会将它们子类化。但是,当将它们交还给库并且不得不进行强制转换时,这非常令人讨厌,我一直在检查instanceof,我想创建一个“数据组件”系统,可以添加到这个数据对象中。我希望能够通过直接访问其成员(而不是通过id或字符串)在代码中使用这些数据组件,将它们序列化并让用户在动态GUI中编辑它们。为了生成GUI(以及用于序列化),我需要知道传递给我的库的“数据组件类”的字段,但我不想强制主应用程序进行库调用以注册每个新的数据组件类。因此,我想问是否可以自动为已加载的给定“数据组件”类的每个子类执行此操作。 (没有类路径扫描)

另一种解决方案是在数据组件超类中声明一个getFields()方法,该方法在需要时自动扫描/注册子类,但这会增加一些延迟(我不知道反射速度有多快/慢)应用程序不再在init中时的第一次调用,因此应尽可能快地运行。 (我想事先做好扫描)

0 个答案:

没有答案