0

我只是想知道,我们可以使用注释处理器生成 .class 文件而不将它们放在源文件中吗?

例如。

Lombak中,我们只是为字段设置@Getter、@Setter。但是如何在不修改源文件的情况下将方法注入到类文件中。

你能提供一个样本,比如他们是如何做到的吗?

我可以获得示例,如何使用注释创建新文件。但是,如果不在源文件中添加任何东西,我应该如何让编译器知道并且 java 文件中有一个可用的 getter 方法。

4

2 回答 2

1

Lombok 所做的有点笨拙,比注释处理复杂得多。注释处理器简单地被语法树的成员调用并生成一个新文件(通常是一个 Java 源文件)。

以 Lombok 的方式修改现有类非常困难。它通过转换 AST来工作,这超出了正常 APT 的范围。

于 2013-11-20T10:03:12.490 回答
0

您总是可以自己写出.class文件,但是这些注释通常的工作方式是注释处理器生成然后编译的源文件。编译器会一直循环,直到在一次传递中不再生成源文件,然后完成。

为了增强现有类,通常的方法是创建 AspectJ 类型间声明。

于 2013-11-20T04:44:21.230 回答