1

我已经开始阅读 Bill Burke 和 Richard Monson-Haefel 撰写的 Enterprise Java Beans 3.0 书,在第 4 章中有这段代码

@PersistenceContext(unitName="titan") private EntityManager manager;

然后,该类具有访问该字段的方法(从未在构造函数中设置并且没有 setter 方法)。那么容器如何用一个实际的实例来设置这个私有字段呢?我假设正在发生一些反射和/或字节码魔术 - 这是如何完成的?

4

2 回答 2

4

getDeclaredFields()将返回类中声明的字段列表。

容器循环检查所有字段以检查适当的注释。一旦找到所需的字段,它就会在该字段上调用​​setAccessible(true)以便能够从通常无法访问的代码中对其进行操作。

于 2009-10-23T18:33:57.610 回答
0
manager.getClass().getDeclaredFields()

将让您访问这些领域。在此处查看 javadocs

于 2009-10-23T18:23:47.163 回答