掌握Java注解(Annontation)

Java注解是自Java5开始引入的新特性,用于提供代码元数据。它可以应用于类、方法等程序元素上,用于编译时检查、生成文档、运行时处理等。注解定义通过@interface,其生命周期由@Retention策略控制,如SOURCE、CLASS、RUNTIME。@Target定义注解的作用目标,如TYPE、METHOD等。元注解如@Documented、@Inherited则控制注解的行为。
摘要由CSDN通过智能技术生成

什么是注解?

Annontation 注解,是java5引入的新特性,在java.lang.annotation包中。它是一种元数据,提供了关于呈现代码的信息,可以用来在代码中添加标记和元数据。

Java注解可以用于类、方法、字段、参数和其他程序元素上,它们可以用来提供编译器和其他工具需要的信息,或者用来在运行时处理程序。Java注解可以通过反射机制在运行时访问和处理。

注解的常见用途

  • 生成文档注解 如@aythor @param
  • 跟踪代码依赖性,实现替代配置文件功能,如spring mvc的注解
  • 编译时进行格式检查 如@override
  • 编译时进行代码生成补全,如lombok的@Data

注解基础知识

注解定义

  • 注解通过@interface表示,所有的注解会自动继承java.lang.Annotation接口
  • 注解的成员参数只能是public或默认default
  • 成员参数只能有八种基本类型、String\Enum、Class、annotation、数组。
  • 获取类方法和字段的注解信息时,只能通过java反射来获取Annotation对象、
  • 注解可以没有定义成员,只做标识。

元注解

java.lang.annotation提供了四种元注解。
@Documented – 注解是否将包含在JavaDoc中
@Retention – 什么时候使用该注解
@Target – 注解用于什么地方
@Inherited – 是否允许子类继承该注解
@Repeatable - 是否可重复注解,jdk1.8引入

注解的生命周期

使用@Retention定义注解的生命周期
@Retention(RetentionPolicy.SOURCE) - 仅存在于源码中,编译阶段会被丢弃,不会包含于class字节码中。@Override @SuppressWarnings属于这类注解
@Retention(RetentionPolicy.CLASS) - 默认策略,在class字节码文件中存在,在类加载时会被丢弃,运行时无法获取。
@Retention(RetentionPolicy.RUNTIME) -始终不会丢弃,可以使用反射来获取该注解信息,自定义的注解最常用方式。

注解的作用目标

通过@Target定义注解的目标,比如作用于类、属性、方法等,默认可以用于任何地方。
ElementType.TYPE: 类、接口、注解、enum
ElementType.CONSTRUCTOR: 构造函数
ElementType.FIELD: 成员变量、对象、属性、枚举的常量
ElementType.LOCAL_VARIABLE: 局部变量
ElementType.METHOD: 方法
ElementType.PACKAGE: 包
ElementType.PARAMETER: 参数
ElementType.ANNOTATION_TYPE): 注解
ElementType.TYPE_PARAMETER:类型参数,表示这个注解可以用在 Type的声明式前,jdk1.8引入。
ElementType.TYPE_USE:类型的注解,表示这个注解可以用在所有使用Type的地方(如:泛型,类型转换等),jdk1.8引入

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值