我正在编写一个AST转换,旨在通过使引用端的setter也在拥有方调用setter来保持双向JPA关系同步。这在调用setFoo()
时可靠地工作,但是在构造函数中初始化的变量(由于声明中的初始化语句,构造函数中的new
或构造函数参数)将不会被链接。 / p>
要处理这种情况,我可以打开所有现有的构造函数(加上任何隐式的默认构造函数)并添加必要的代码。但是,添加构造函数的一些常见AST转换(例如@TupleConstructor
)在CANONICALIZATION
阶段运行,之后没有阶段,我可以可靠地插入新指令。
如何确保将我的额外代码添加到每个构造函数中,包括可能由其他转换添加的代码?