JAVA-元注解和注解

news2024/9/24 17:15:06

故事背景:罗芭是一名正在学习java的妹子,最近看甲骨文的官方文档,学到了注解Annotation这里,发现注解我可以自定义,但罗芭不会诶。但是布洛特 亨德尔已经学习过了java注解。
罗芭,help me~
唰唰唰,俺老亨来也。
老亨:首先,实现一个自定义注解需要了解元注解,因为自定义注解实现需要元注解做支持。
这里我们先做一下了解。
在这里插入图片描述


@Retention:
用于指定被修饰的自定义注解可以保留多久,该元注解有如下属性值:
RetentionPolicy.SOURCE:编译器将直接丢弃被修饰的注解。
RetentionPolicy.CLASS:默认值,编译器将把注解记录在class文件中,当运行Java程序时,虚拟机不再保留注解;
RetentionPolicy.RUNTIME:编译器将把注解记录在class文件中,当运行java程序时,虚拟机保留注解,程序可以通过反射获取该注解;

@Target:
用于指定被修饰的自定义注解只能用于修饰程序中哪些元素,常用属性值有:
ElementType.FIELD:应用于全局属性
ElementType.METHOD:应用于方法
ElementType.PARAMETER:应用于方法的参数
ElementType.TYPE:应用于类、接口或者枚举声明

@Documented
执行javadoc命令时,被该元注解修饰的自定义注解也会生成在文档中

@Inherited
如果父类所使用的注解有@Inherited修饰,则子类可以继承该注解,否则不能继承。

那么注解是什么呢?

罗芭:嘛是注解呀?

老亨:注解是一种标记,使类或接口附加额外信息,帮助编译器和 JVM 完成一些特定功能
可以理解注解是一张标签,给商品标记价格、材料、尺码等信息,标签是不可以卖滴,通过贴标签这样的形式,让商品有了金钱属性。类如果被贴上了标签,就代表这个类拥有了这个标签所代表的功能或者属性,用这种方式来简化代码。
在这里插入图片描述

元注解和注解的关系是什么?

罗芭:你刚才说了元注解和注解,他俩有什么联系呀?
老亨:元注解是可以注解到注解上的注解(也是一种标签,是给注解加标签的),或者说元注解是一种基本注解,但是它能够应用到其它的注解上面

注解是什么时候被JDK引入的?

老亨:注解并不是一开始就有的原住民,是在jdk1.5之后引入的。

为什么JDK引入注解?

罗芭:为什么要用这个注解尼?

老亨:和没有注解之前进行对比,有了注解之后可以提高编码效率。
如:开发人员用注解写好一个类,其他开发人员能直接用;我们写一段程序,使用注解之后,可以直接生成文档。

注解用在什么地方?什么时候使用注解?

在这里插入图片描述
罗芭:不行,知识好多,我要打包带走,先把基础概念弄清楚,再实现自定义注解吧。
老亨:你说的对,那你先消化一下吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/66974.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis05:Redis高级部分

Redis高级部分SpringBoot整合Redis整合测试序列化配置解决乱码问题redis自定义RedisTemplateSpringBoot整合Redis 说明:在SpringBoot2.x之后,原来使用jedis被替换成了letttuce! jedis:采用的时直连,多个线程操作的话,是不安全的&a…

MySQL下载和安装(Windows)

前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所有东西都配好的装配,突然需要自己从头来配才发现不知道如何下手,所以决定将这些步骤都做个记录,以便后续查看。仅限没有安装过的人使用&#xff0…

关于海量级存储用户标签体系架构

项目场景: 对于我们运营来说,需要给用户打上不同的身份标签。比如用户是否偏重,身高范围,是不是我们的会员。。。等等一些标签。 比如我们有100W用户。我们需要来给100W用户打上接近200个不同身份的标签应该如何去做&#xff1f…

【数据集NO.4】遥感图像数据集汇总

文章目录前言一、NWPU VHR-10卫星图像数据集二、RSOD三、DIOR四、DOTA五、HRSC2016六、UCAS AOD七、HRRSD八、SSDD九、DLR 3K Vehicle前言 数据集对应应用场景,不同的应用场景有不同的检测难点以及对应改进方法,本系列整理汇总领域内的数据集&#xff0…

《MySQL实战45讲》——学习笔记20 “幻读、全表扫描的加锁方式、间隙锁、next-key lock“

本篇介绍MySQL在可重复度RR隔离级别下,引入的一种锁机制:间隙锁 (Gap Lock);间隙锁与事务相关的表锁、行锁不同,它锁的是“往这个间隙中插入一个记录”这个操作,除此之外间隙锁之间都不存在冲突关系(因而有…

Spring @Autowire注解源码详解

目录 一:触发方式: 二:源码解析 2.1 扫描注入点 2.2 属性赋值 一:触发方式: 1.Spring容器在每个Bean实例化之后,调用AutowireAnnotationBeanPostProcessor的postProcessMergedBeanDefinition方法进行扫…

[附源码]计算机毕业设计美发店会员管理系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

七周成为数据分析师 | 数据可视化

一.常见的初级图表 维度:描述分析的角度和属性,分类数据(时间,地理位置,产品类型等) 度量:具体的参考数值,数值数据(元,销量,销售金额等&#x…

windows监控linux服务器资源grafana+prometheus+node_exporter

Windows环境监控Linux服务器资源grafanaprometheusnode_exporter 1.安装包下载 链接:https://pan.baidu.com/s/1xqdIYNtadt2tRSN-XlELUw 提取码:12342.安装grafana (1)将压缩包解压后,在bin文件目录下,点…

【Linux】shell命令以及运行原理和Linux权限详解

本期主题:Linux权限详解博客主页:小峰同学分享小编的在Linux中学习到的知识和遇到的问题小编的能力有限,出现错误希望大家不吝赐 目录 🍁1.shell命令以及运行结果 🍁2. Linux用户管理 🍁3. Linux权限管理 …

Python进阶学习之阅读代码

起因 在这个过程中,学习到了一些东西,同时整理了自己以前的一些收获,然后分享给大家,有不对的地方还望海涵、指正。 阅读代码有助于处理bug 阅读代码是一项更重要的技能,在大学编程语言的考试中也有相关的考察——代…

Paper reading:Fine-Grained Head Pose Estimation Without Keypoints (CVPR2018)

Paper reading:Fine-Grained Head Pose Estimation Without Keypoints (CVPR2018) 一、 背景 为什么要读这篇论文,因为LZ之前要做头部姿态估计,看到一些传统的方法,都是先进行人脸检测,然后再…

Java基于JSP旅游网站系统的设计于实现

我国的旅游事业目前正处于一个科学技术日新月异飞速向前发展的环境中。信息技术和通信技术以令人目不暇接的速度发展,尤其是互联网络的广泛流行,使得各种服务信息已近乎透明,且个性突出的游客们已不再满足于死板的标准化的旅游项目&#xff0…

JavaScript-T2

JavaScript-T2 前言 本次主要讲解的知识点是: JavaScript自定义函数 JavaScript系统函数 JavaScript 事件 JavaScript 的常用事件 JavaScript自定义函数 函数就是为了完成程序中的某些特定功能而进行专门定义的一段程序代码 函数包括自定义函数和系统函数 使用函数…

Akka 学习(二)第一个入门程序

目录一 sbt 介绍1.1 Sbt1.2 下载安装1.3 sbt的特点1.4 Idea 配置Sbt开发工具二 构建定义2.1 指定版本2.2 build.sbt 设置三 代码实现3.1 Java版本3.2 Scala版本3.3 对比一 sbt 介绍 1.1 Sbt sbt 是为 Scala 和 Java 项目构建的。它是93.6%的 Scala 开发人员的首选构建工具&am…

2000-2021年各省GDP包括名义GDP、实际GDP、GDP平减指数(以2000年为基期)

全国31省市GDP平减指数(2000-2021年)及计算步骤 1、时间:2000-2021年 2、范围:31省 3、数据包括:2000-2021年各省市GDP平减指数,以2000年为基期,包括数据来源、计算方法、公式等。 4、计算步骤: 第一步…

物联卡采购注意要点有哪些

在这个万物互联的时代,针对于企业设备联网的物联卡就显得格外重要了,而共享单车,移动支付,智慧城市,自动售卖机等企业采购物联卡会面临着各种问题,低价陷阱,流量虚假,管理混乱&#…

sealos issue #2157 debug 思路流程记录

sealos issues#2157 debug思路流程前言分析issue剖析源码解决方案总结前言 这个项目蛮有意思的,sealos 是以 kubernetes 为内核的云操作系统发行版。 boss上看到 -> 沟通 -> 解决某个issue直接offer -> 舒服 本文记录解决 issue 的思路 分析issue BUG…

Linux系统常用的工具

1.1 Vscode编辑器 从官网下载 ubuntu 版本,官网地址:https://code.visualstudio.com/。下载xxx.deb的包。 或者使用指令下载:wget https://az764295.vo.msecnd.net/stable/6261075646f055b99068d3688932416f2346dd3b/code_1.73.1-1667967334…

基于Intel Lake-UP3平台为半导体与集成电路测试设备提供优异计算性能

为什么半导体和IC测试设备需要升级? 随着众多新的高性能应用的需求不断增加,信迈旨在为半导体集成电路测试设备领域的客户提供更好的方案。半导体和集成电路(IC)测试设备设计用于在一台测试机上同时对不同线路的数百个集成电路…