负责实现注解的lombok源代码在哪里?
Where is the lombok source code responsible for implementing the annotations?
我正在浏览 Lombok 项目的源代码 code,因为我正在学习一般的注释和 AOP,我认为这将是一个很好的例子来汲取灵感。
但是,我不明白,AllArgsConstructor
只定义了注释——我目前掌握的那部分——但是实际添加构造函数的代码在哪里?以及所有其他注释。
首先请注意,如果您想了解注释处理,Lombok 不是一个很好的入门示例。 Lombok 不是常规的注解处理器(它只会将新的源文件添加到编译中)。相反,它会修改现有的 Java 来源。这不是注释处理器通常做的事情,也不是 javac
中的注释处理的目的。 Lombok 使用 javac
的 API 来修改和丰富抽象语法树。这使得它变得复杂且难以理解。
为了回答您的问题,为 Lombok 注释生成代码的逻辑位于所谓的处理程序中。在您的情况下,它是 HandleConstructor
类(其中有两个:one for javac
, one for the Eclipse compiler)。
我正在浏览 Lombok 项目的源代码 code,因为我正在学习一般的注释和 AOP,我认为这将是一个很好的例子来汲取灵感。
但是,我不明白,AllArgsConstructor
只定义了注释——我目前掌握的那部分——但是实际添加构造函数的代码在哪里?以及所有其他注释。
首先请注意,如果您想了解注释处理,Lombok 不是一个很好的入门示例。 Lombok 不是常规的注解处理器(它只会将新的源文件添加到编译中)。相反,它会修改现有的 Java 来源。这不是注释处理器通常做的事情,也不是 javac
中的注释处理的目的。 Lombok 使用 javac
的 API 来修改和丰富抽象语法树。这使得它变得复杂且难以理解。
为了回答您的问题,为 Lombok 注释生成代码的逻辑位于所谓的处理程序中。在您的情况下,它是 HandleConstructor
类(其中有两个:one for javac
, one for the Eclipse compiler)。