魔术桌
  • 更新日志
  • 新闻资讯
  • 数据资产
  • 网站导航
  • 订阅推荐
  • 商品推广
  • 日记
  • 摘录
  • 论文
  • 方案
  • 技术
  • 风格
  • 视觉
  • 原材料
  • 加工工艺
  • 元器件
  • 产品设备
  • 设计模式
  • 数据结构
  • 算法设计
  • 软件架构
  • 程序语言
  • 代码类库
  • 操作系统
  • 软件包
  • 健康
  • 环境
  • 社会
  • 道德
  • 法律
  • 经济
  • 政策
  • 更新日志
  • 新闻资讯
  • 数据资产
  • 网站导航
  • 订阅推荐
  • 商品推广
  • 日记
  • 摘录
  • 论文
  • 方案
  • 技术
  • 风格
  • 视觉
  • 原材料
  • 加工工艺
  • 元器件
  • 产品设备
  • 设计模式
  • 数据结构
  • 算法设计
  • 软件架构
  • 程序语言
  • 代码类库
  • 操作系统
  • 软件包
  • 健康
  • 环境
  • 社会
  • 道德
  • 法律
  • 经济
  • 政策
  • Language - Java - Java SE - 元注解

文章摘要: 在Java中,注解(Annotation)是一种用于修饰代码的元数据,可以提供有关程序代码的信息,但不直接参与程序的执行。元注解是用于定义注解的注解。

注释

  • 元注解来自javax.annotation

@Override

  • 定义在java.lang.Override
  • 该注解只适用于修辞手法,表示一个方法表明打算重写基类中的另一个方法声明。

@Deprecated

  • 包路径:java.lang.Deprecated
  • 可以用于修饰方法、属性、类,表示不鼓励程序员使用这样的元素,通常是因为它很危险或者存在更好的选择。

@SuppressWarnings

  • 包路径:java.lang.SuppressWarnings
  • 用来抑制编译时的警告信息。

@Target

定义

  • 用于指定注解可以应用的目标元素类型,使用范围。
  • 目标元素类型指的是注解可以修饰的Java语言元素,比如类、接口、方法等。

参数

ElementType:该注解的值是一个枚举类型。

  • ANNOTATION_TYPE:注解类型声明
  • CONSTRUCTOR:构造方法声明
  • FIELD:字段声明(包括枚举常量)
  • LOCAL_VARIABLE:局部变量声明
  • METHOD:方法声明
  • PACKAGE:包声明
  • PARAMETER:参数声明
  • TYPE:类、接口(包括注解类型)或枚举声明

案例

import java.lang.annotation.ElementType;
import java.lang.annotation.Target;

@Target({ElementType.TYPE})
public class Test {

}

@Retention

定义

  • 用于指定注解的信息保留到什么阶段。它控制注解的生命周期。

参数

RetentionPolicy:该注解的值是一个枚举类型 RetentionPolicy。它包括以下几种:

  • SOURCE:注解只保留在源代码中,编译器会忽略。
  • CLASS:注解在编译时被保留在.class文件中,但不会被加载到JVM中。
  • RUNTIME:注解会被加载到JVM中,因此在运行时可以反射性地读取。

案例

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)
public class Test {

}

@Documented

定义

  • 用于表明注解应该被 javadoc 工具记录。
  • 如果一个注解被 @Documented 标记,那么它的注解信息会被包含在生成的文档中。

参数

  • 无

案例

import java.lang.annotation.Documented;

@Documented
public class Test {

}

@Inherited

定义

  • 用于表明注解类型是可以被继承的。
  • 如果一个注解被 @Inherited 标记,并且该注解被用于一个类,那么这个注解也会被用于该类的子类。

参数

  • 无

案例

import java.lang.annotation.Inherited;

@Inherited
public class Test {

}
更新时间: 2025/11/16 17:17