IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java注解(作用于注解) -> 正文阅读

[Java知识库]java注解(作用于注解)

注解是什么

在Java中是 JDK5.0 引入的一种注释机制。Java 语言中的类、方法、变量、参数和包等都可以被标注。
在java中基本类型几个注解,也成为元注解

元注解

@Retention - 标识这个注解怎么保存,是只在代码中,还是编入class文件中,或者是在运行时可以通过反射访问。
@Documented - 标记这些注解是否包含在用户文档中。
@Target - 标记这个注解应该是哪种 Java 成员。
@Inherited - 标记这个注解是继承于哪个注解类(默认 注解并没有继承于任何子类)
这几个注解是作用到注解上的。所以也称为元注解
不同的注解作用的位置不一样,今天只介绍其中一部分
这几个是jdk自带的注解

如何使用

那么我们该如何使用注解呢?
@interface 是我们开发人员使用的自定义注解时用到的关键字为了区分接口所以在前面加了一个@符号,那么结合上面所说的元注解,应用到我们自定义的注解上。以这种形式编写格式如下

@Documented //表示当前这个注解生成文档doc文档
@Target(ElementType.TYPE)//当前这个注解只能作用于类
@Retention(RetentionPolicy.RUNTIME)//当前这个注解在什么范围下可用,当前这个
public @interface MyAnnotation1 {
}

可以看到这个MyAnnotation1注解上面有三个注解,是我们上面说的元注解,那我们使用自己写的注解该如何使用呢?
可以看到我们把注解用到了方法上它显示出了红线,这就是我们用到的
@Target(ElementType.TYPE)//当前这个注解只能作用于类
这个元注解的作用,它限定了你的自定义注解可以作用于什么地方。
在这里插入图片描述
现在我们在@Target(ElementType.TYPE)中再添加一个新的ElementType.METHOD,再看我们这个注解就不会报错了,因为TYPE表示的时当前这个注解只能作用于类,当我们添加了METHOD后他的范围就包括了方法在这里插入图片描述

现在我们将@Retention(RetentionPolicy.RUNTIME)这里修改为@Retention(RetentionPolicy.CLASS)标识着这个注解会保存在哪里,这里我们保存到类文件中,这里我们做一个对比首先RetentionPolicy.CLASS和RetentionPolicy.SOURCE的区别,第一个是保存到类中第二个是只在代码中
可以通过看他们生成class文件做出对比
使用RetentionPolicy.SOURCE了在这里插入图片描述
使用RetentionPolicy.CLASS
在这里插入图片描述
而在上面一开始使用的RetentionPolicy.RUNTIME这个关键标识,是可以在运行时通过Java中反射来获取注解以及注解中的内容。也就是说它的存活时间更长。
通过以上这两个元注解的使用我们可以看到,这几个元注解的作用是来限定我们自定义的注解的
关于@Documented这个生成dos文件的注解大家可以下去自己实际验证一下。

现在这只是一部分的注解作用,后续会把其他注解一些内容进行一个整理

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-26 11:28:38  更:2022-04-26 11:28:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:06:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码