我只是想知道,我们是否可以使用注释处理器生成.class文件而不将它们放在源文件中。?
例如。
在Lombak中,我们只是为字段设置@Getter,@ Setter。但是如何在没有在源文件中进行修改的情况下将该方法注入到类文件中。
你能提供样品,比如他们是怎么做的?
我可以获得示例,如何使用注释创建新文件。但是,如果不在源文件中添加任何内容,我应该如何让编译器知道并且java文件中有可用的getter方法。
答案 0 :(得分:1)
龙目岛所做的事情有点过时,比annotation processing复杂得多。简单地使用语法树的成员调用注释处理器并生成新文件(通常是Java源文件)。
以Lombok的方式修改现有类非常困难。它由transforming the AST起作用,这超出了普通APT的范围。
答案 1 :(得分:0)
您总是可以自己写出.class
个文件,但这些注释通常的工作方式是注释处理器生成随后编译的源文件。编译器保持循环,直到在传递上没有生成源文件然后结束。
为了增强现有类,创建AspectJ类型间声明是常用的方法。