它必须是 Java 101,但我不知道为什么我不能使用直接字段访问以及为什么我不得不在复制构造函数中使用 getter。
我有一堆实体。它们像树一样组织起来。链接的实体被急切地获取。
我使用 Hibernate、Lombok 和 IntelliJ 作为调试器。
当我从根部拉出其中一个实体树时,我得到一棵对象树。我们称它为“原始”。由于某些与业务需求相关的原因,我需要复制它(我们称之为“副本”)。我使用复制构造函数来做到这一点。我首先使用直接字段访问编写了复制构造函数的一个版本。
this.someField= original.someField
它没有用。当我检查调试器时,我看到 original.someField(以及其他字段)始终为空。
不过,它可以使用吸气剂。
this.setSomeField(original.getSomeField())
在调试器中,我可以看到 original.handler.target 中的字段已“设置”。(我不知道 handler.target 是什么)。
有人可以向我解释为什么直接字段访问不起作用吗?
(我问的是技术原因,而不是哲学上的原因,比如“你应该总是使用吸气剂”等)。
我也很高兴知道什么是“handler.target”。
提前致谢。