JDK的四个元注解

简介: JDK的四个元注解

四个元注解

八:总结

一:前言

最近在研究JAVA注解,既然要研究注解,那么元注解肯定是绕不过去的,今天我就来盘一盘Java的4个元注解


二:什么是Java注解

在Java中,注解(Annotation)是一种元数据(metadata)的形式,它提供了一种在代码中添加元数据的方式,可以帮助我们更好地理解和组织代码,也可以让代码更具有可读性和可维护性。


注解可以被添加到类、方法、字段、参数等代码元素上,它们以@符号开头,后跟注解名称和一组圆括号,其中可能包含一些参数。


例如,下面是一个使用注解的例子:

@MyAnnotation(name = "demo", value = "test")
public class MyClass {
    //...
}

-在这个例子中,@MyAnnotation就是一个注解,它被应用于MyClass类上,并提供了两个参数:name和value。当编译器或运行时环境遇到注解时,它会根据注解的定义来处理相应的代码元素。


三:@Target 注解

3.1 示例

@Target 注解用于指定注解可以应用于哪些元素。它包含一个 value 属性,可以指定一个 ElementType 数组。

例如:

@Target({ElementType.TYPE, ElementType.METHOD})
public @interface MyAnnotation {
    //...
}

上面的代码表示 MyAnnotation 注解可以应用于类和方法。


3.2 常用ElementType

常用的 ElementType 包括:


ElementType.TYPE:类、接口、枚举

ElementType.FIELD:字段

ElementType.METHOD:方法

ElementType.PARAMETER:方法参数

ElementType.CONSTRUCTOR:构造方法

ElementType.LOCAL_VARIABLE:局部变量

ElementType.ANNOTATION_TYPE:注解

ElementType.PACKAGE:包

四:@Retention 注解

4.1 示例

@Retention 注解用于指定注解可以保留多长时间。它包含一个 value 属性,可以指定一个 RetentionPolicy 枚举值。例如:

@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
    //...
}

4.2 常用RetentionPolicy

上面的代码表示 MyAnnotation 注解可以保留到运行时。常用的 RetentionPolicy 包括:


RetentionPolicy.SOURCE:只保留在源代码中,不会包含在编译后的 class 文件中。

RetentionPolicy.CLASS:保留到编译时,会包含在编译后的 class 文件中,但不会被加载到 JVM 中。

RetentionPolicy.RUNTIME:保留到运行时,会被加载到 JVM 中,并可以通过反射机制读取注解信息。

五:@Documented 注解

5.1 示例

@Documented 注解用于指定注解是否包含在 Java 文档中。如果一个注解被 @Documented 修饰,那么在使用 javadoc 命令生成文档时,该注解信息会被包含在文档中。例如:

@Documented
public @interface MyAnnotation {
    //...
}

六:@Inherited 注解

6.1 示例

@Inherited 注解用于指定注解是否可以被继承。如果一个注解被 @Inherited 修饰,那么它可以被子类继承。例如:

@Inherited
public @interface MyAnnotation {
    //...
}

注意,只有在被修饰的注解应用于类时,@Inherited 才会起作用。如果应用于其他元素(如方法或字段),则子类不会继承该注解。


七:为什么要有元注解

7.1 创造注解的机会

元注解,是专门用来定义注解的注解,所有的注解可以由四个元注解限定,这四个注解,给了我们一个可以创造注解的机会。就如同编程语言中的保留字一样,通过这些注解,定制我们需要的注解。

7.2 保留字

我们自己编写的注解一定要让编译系统认识,这样编译系统才能编译,产生相对应的作用。那么怎么才能认识呢?怎么用不变统一变化呢?JDK中用的就是元注解的方式,通过元注解,限定自定义注解的保留时间、修饰位置、是否有文档、是否有继承性、是否可以重复使用。

7.3 管理和控制

元注解是为了更好地管理和控制注解而产生的。Java中的注解(Annotation)是一种用于代码描述的元数据(metadata),它们提供了一种便捷的方式来为代码添加额外的信息。

7.4 避免错误

使用元注解可以更好地控制和管理注解,避免出现意外的错误,提高代码的可读性和可维护性。元注解使得注解能够更好地适应不同的使用场景,可以更好地满足不同开发者的需求。

八:总结

上文为大家讲述了4个JDK的元注解,相信大家对元注解都有了相应的认识,赶快结合元注解去自己定义相应注解吧!


目录
相关文章
|
域名解析 弹性计算 网络协议
阿里云轻量应用服务器使用教程(2023新版)
阿里云轻量应用服务器使用教程(2023新版)阿里云轻量应用服务器怎么使用?阿里云轻量应用服务器使用教程:轻量应用服务器购买、重置密码、远程连接、宝塔面板的Web环境搭建、WordPress网站程序安装到网站上线,阿里云服务器网分享轻量应用服务器从购买、配置建站环境、轻量服务器应用服务器远程连接、开端口到网站上线全流程
|
6月前
|
数据采集 人工智能
OmniScience:大规模科学多模态数据集重磅上线
OmniScience是深势科技开源的科研图像理解数据集,含150万高质量“图-文-上下文”三元组、500万子图,覆盖10大科学领域。依托Uni-Parser与多模态大模型重描述,显著提升AI对科学图表的深层语义理解能力。
707 3
|
7月前
|
机器学习/深度学习 自然语言处理 搜索推荐
你的模型真的“懂”吗?用 Captum / SHAP 把神经网络扒开给你看
你的模型真的“懂”吗?用 Captum / SHAP 把神经网络扒开给你看
609 4
|
关系型数据库 MySQL 数据库
卸载云服务器上的 MySQL 数据库
卸载云服务器上的 MySQL 数据库
803 0
|
Python
Python中使用关键字参数(Keyword Arguments)
【7月更文挑战第24天】
1376 2
|
存储 Java 测试技术
阿里巴巴java开发手册
这篇文章是关于阿里巴巴Java开发手册的整理,内容包括编程规约、异常日志、单元测试、安全规约、MySQL数据库使用以及工程结构等方面的详细规范和建议,旨在帮助开发者编写更加规范、高效和安全的代码。
|
人工智能 自然语言处理 机器人
谷歌AI Gemin怎么使用?Gemini国内使用指南!(2024.8.19)
从自然语言处理(NLP)到对话生成,AI语言模型已经成为科技界的一个重要组成部分。在众多杰出的AI语言模型中,Gemini凭借其卓越的性能和广泛的应用而脱颖而出。作为谷歌旗下的多模态AI巨头,Gemini融合了最先进的语言处理技术,为用户提供了无与伦比的语言理解和生成能力。
|
API iOS开发 容器
App Extensions篇之Share Extension
这里主要是对App Extension的一些介绍以及详细给大家介绍一下Share Extension,后期会添加其他的Extension介绍。
3989 0
|
Windows
Windows 启动命令行的三种方式
Windows 平台启动命令行有多种方式,这里介绍三种
2049 0
Windows 启动命令行的三种方式
|
弹性计算
拉新首购云服务器最高赢500元猫超卡
新手大使以及加入过云大使从来没有推广的大使们在活动期间内推广客户首购云服务器(弹性计算)可享双重奖励,返佣奖励+额外任务奖励
拉新首购云服务器最高赢500元猫超卡

热门文章

最新文章