Java注解(二)源码注解处理器

本文详细介绍了如何在Java中创建自定义注解处理器。通过继承AbstractProcessor并实现process方法,我们可以处理特定注解。文章展示了如何指定处理器支持的注解类型和支持的JDK版本,并给出了获取注解及被注解元素信息的示例代码,强调了注解在减少重复代码和提升类库易用性中的作用。

上一篇学习了如何在运行时处理注解,本文将学习如何在编译期处理注解。

 

自定义注解处理器

 

AbstractProcessor是注解处理器的抽象类,我们通过继承AbstractProcessor类然后实现process方法来创建我们自己的注解处理器,所有处理注解的代码放在process方法里面。一个简单的处理器示例如下:

//AnnotationProcessor.java

package com.shaoshuidashi;
import javax.annotation.processing.AbstractProcessor;
import javax.annotation.processing.RoundEnvironment;
import javax.annotation.processing.SupportedAnnotationTypes;
import javax.annotation.processing.SupportedSourceVersion;
import javax.lang.model.SourceVersion;
import javax.lang.model.element.TypeElement;
import java.util.Set;

@SupportedAnnotationTypes({"com.shaoshuidashi.TestAnnotation"})
@SupportedSourceVersion(SourceVersion.RELEASE_8)
public class AnnotationProcessor extends AbstractProcessor {
    @Override
    public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
        System.out.println("process");
        return true;
    }
}

上面代码中有三个重要部分,第一个是process方法,然后是两个注解SupportedAnnotationTypes和SupportedSourceVersion,process方法只是简单打印了字符串“process”,我们后面会学习具体的处理方法。SupportedAnnotationTypes表示我们的注解处理器可以处理的注解类型,本例中为“com.shaoshuidashi.TestAnnotation”,它的定义如下:

//TestAnnotation.java

package com.shaoshuidashi;
import java.lang.annotation.Retention;
import java.lang
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值