java - 注解解析与自定义

本文介绍了Java注解的基础知识,包括@Target和@Retention的使用,以及如何自定义注解。此外,还探讨了APT(Annotation Processing Tool)技术,解释了其在编译时期处理自定义注解并生成Java文件的功能。通过实现AbstractProcessor并配置AutoService,可以在编译过程中获取和处理注解信息。
摘要由CSDN通过智能技术生成

一.Annotation

注解的基本结构就是一个@加字符,可以放在需要修饰的类、方法、变量和参数等元素前面。

Annotation并不直接影响代码的语义,但是他可以被看做是程序的工具或者类库。它会反过来对正在运行的程序语义有所影响。

Annotation可以从源文件、class文件或者在运行时通过反射机制多种方式被读取。

Java中有五个元注解 (即作用在其它注解的标准注解)@Retention@Documented@Target@Inherited@Repeatable

  • @Retention:决定这个注解的存活时间;(这里注意下!!)

  • @Documented:被该注解修饰的类可以被javadoc工具提取成文档;

  • @Target:表明该注解可以修饰哪些元素;

  • @Inherited:被该注解修饰的注解有继承性;

  • @Repeatable:表明该注解可以多次应用修饰同一个元素。

这里重点了解下@Target和@Retention设置的值:

1.@Target

// @Target使用ElementType值
public enum ElementType {
    TYPE,               // 类、接口(包括注解类型)或枚举声明
    FIELD,              // 变量声明(包括枚举常量)
    METHOD,             // 方法声明
    PARAMETER,          // 参数声明
    CONSTRUCTOR,        // 构造方法声明
    LOCAL_VARIABLE,     // 局部变量声明
    ANNOTATION_TYPE,    // 注解类型声明
    PACKAGE             // 包声明
}

2.@Retention

//
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值