java AbstractProcessor 编译时注解 (JSR 269)

本文详细指导如何在Java中使用AbstractProcessor创建编译时注解处理器,涉及项目结构设置、maven配置、HelloWorld注解及MyProcessor实现。遇到的问题与解决方案一并列出,同时概述了相关API的使用。

写在前面

下一篇:java AbstractProcessor 编译时注解(API)

Lombok 的getter、setter如何实现的?

答案就在AbstractProcessor 身上,继承AbstractProcessor 抽象类,java文件在编译时编译器会检查AbstractProcessor的子类,并根据这些子类的内容,对java文件进行动态修改,再生成class文件。

1、实现编译时注解

注意:不要将AbstractProcessor 和 使用该AbstractProcessor 的类写在同一个项目中

1.1、实现步骤

以maven项目为例(将实现编译时注解的功能放到项目b ,测试使用这个功能在项目a)

项目结构:

在这里插入图片描述

1.1.1、项目b的内容

b的pom.xml

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencies>

        <!-- 提供@AutoService注解,让AbstractProcessor子类被编译器发现 -->
        <!-- 如果不想使用@AutoService注解,也可以在resources/META-INF/services/javax.annotation.processing.Processor中添加AbstractProcessor的子类 -->
        <dependency>
            <groupId>com.google.auto.service</groupId>
            <artifactId>auto-service</artifactId>
            <version>1.0-rc5</version>
        </dependency>

        <!-- 提供JCTree等一些功能api -->
        <dependency>
            <groupId>com.sun</groupId>
            <artifactId>tools</artifactId>
            <version>1.8</version>
            <scope>system</scope>
            <systemPath
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值