java 注解 @Retention @interface 元数据

2023-11-12

java注解

即是注释了,百度解释:也叫元数据。一种代码级别的说明。 个人理解:就是内容可以被代码理解的注释,一般是一个类。

元数据

也叫元注解,是放在被定义的一个注解类的前面 ,是对注解一种限制。只有两个: @Retention 和 @Target  (我只查到这两个).

@Retention :用来说明该注解类的生命周期。它有以下三个参数:

RetentionPolicy.SOURCE  : 注解只保留在源文件中

RetentionPolicy.CLASS  : 注解保留在class文件中,在加载到JVM虚拟机时丢弃

RetentionPolicy.RUNTIME  : 注解保留在程序运行期间,此时可以通过反射获得定义在某个类上的所有注解。

@Target :  用来说明该注解可以被声明在那些元素之前。

ElementType.TYPE:说明该注解只能被声明在一个类前。

ElementType.FIELD:说明该注解只能被声明在一个类的字段前。

ElementType.METHOD:说明该注解只能被声明在一个类的方法前。

ElementType.PARAMETER:说明该注解只能被声明在一个方法参数前。

ElementType.CONSTRUCTOR:说明该注解只能声明在一个类的构造方法前。

ElementType.LOCAL_VARIABLE:说明该注解只能声明在一个局部变量前。

ElementType.ANNOTATION_TYPE:说明该注解只能声明在一个注解类型前。

ElementType.PACKAGE:说明该注解只能声明在一个包名前。

注解的定义:

注解的定义使用关键词 @interface ,并在上面一行注明@Rentention(arg) 或者@Target(args) , 样例如下:

@Rentention(RetentionPolicy.RUNTIME)

public @interface Annotation01 {

//定义公共的final静态属性

.....

//定以公共的抽象方法

......

}

常见基本内置注解

@Override  当我们想重写一个方法时,在方法上加@Override,当我们方法的名字出错时,编译器就会报错。 定义如下:

@Retention(RetentionPolicy.SOURCE )

public   @interface  Override

@Deprecated  用来表示某个类的属性或方法已经过时,不想别人再用时,在属性和方法上用@Deprecated修饰。 定义如下:

@Retention(RetentionPolicy.SOURCE )

public   @interface  Deprecated

@SuppressWarnings  用来压制程序中出来的警告。 定义如下:

@Retention(RetentionPolicy.SOURCE )

public   @interface  SuppressWarnings 

注解的使用

定义注解--》声明注解-->获得注解;

其中 获得注解 通过被修饰的对象的 getAnnotation 或 getAnnotations 方法获得。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java 注解 @Retention @interface 元数据 的相关文章

  • 唯一索引或主键违规:“PRIMARY KEY ON PUBLIC.xxx”; SQL语句

    每当我的应用程序启动时 我都会收到以下错误消息 Caused by org h2 jdbc JdbcSQLException Unique index or primary key violation PRIMARY KEY ON PUBL
  • JavaMail Gmail 问题。 “准备启动 TLS”然后失败

    mailServerProperties System getProperties mailServerProperties put mail smtp port 587 mailServerProperties put mail smtp
  • 使用 ANTLR 为 java 源代码生成抽象语法树

    如何使用 ANTLR 从 java src 代码生成 AST 有什么帮助吗 好的 步骤如下 前往ANTLR站点 http www antlr org 并下载最新版本 下载Java g和JavaTreeParser g文件来自here htt
  • Convert.FromBase64String 方法的 Java 等效项

    Java 中是否有相当于Convert FromBase64String http msdn microsoft com en us library system convert frombase64string aspx which 将指
  • OnClick 事件中的 finish() 如何工作?

    我有一个Activity一键退出Activity 通过layout xml我必须设置OnClick事件至cmd exit调用 this finish 效果很好 public void cmd exit View editLayout thi
  • Microsoft Graph 身份验证 - 委派权限

    我可以使用 Microsoft Graph 访问资源无需用户即可访问 https developer microsoft com en us graph docs concepts auth v2 service 但是 此方法不允许我访问需
  • Prim 的迷宫生成算法:获取相邻单元格

    我基于 Prim 算法编写了一个迷宫生成器程序 该算法是 Prim 算法的随机版本 从充满墙壁的网格开始 选择一个单元格 将其标记为迷宫的一部分 将单元格的墙壁添加到墙壁列表中 While there are walls in the li
  • 在具有相同属性名称的不同数据类型上使用 ModelMapper

    我有两节课说Animal AnimalDto我想用ModelMapper将 Entity 转换为 DTO 反之亦然 但是对于具有相似名称的一些属性 这些类应该具有不同的数据类型 我该如何实现这一目标 动物 java public class
  • Java中接口作为方法参数

    前几天去面试 被问到了这样的问题 问 反转链表 给出以下代码 public class ReverseList interface NodeList int getItem NodeList nextNode void reverse No
  • 反思 Groovy 脚本中声明的函数

    有没有一种方法可以获取 Groovy 脚本中声明的函数的反射数据 该脚本已通过GroovyShell目的 具体来说 我想枚举脚本中的函数并访问附加到它们的注释 Put this到 Groovy 脚本的最后一行 它将作为脚本的返回值 a la
  • 如何在 JFreeChart TimeSeries 图表上显示降雨指数和温度?

    目前 我的 TimeSeries 图表每 2 秒显示一个位置的温度 现在 如果我想每2秒显示一次降雨指数和温度 我该如何实现呢 这是我的代码 import testWeatherService TestWeatherTimeLapseSer
  • org.jdesktop.application 包不存在

    几天以来我一直在构建一个 Java 桌面应用程序 一切都很顺利 但是今天 当我打开Netbeans并编译文件时 出现以下编译错误 Compiling 9 source files to C Documents and Settings Ad
  • Java中未绑定通配符泛型的用途和要点是什么?

    我不明白未绑定通配符泛型有什么用 具有上限的绑定通配符泛型 stuff for Object item stuff System out println item Since PrintStream println 可以处理所有引用类型 通
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • Android JNI C 简单追加函数

    我想制作一个简单的函数 返回两个字符串的值 基本上 java public native String getAppendedString String name c jstring Java com example hellojni He
  • 将 JTextArea 内容写入文件

    我在 Java Swing 中有一个 JTextArea 和一个 提交 按钮 需要将textarea的内容写入一个带有换行符的文件中 我得到的输出是这样的 它被写为文件中的一个字符串 try BufferedWriter fileOut n
  • 休眠以持久保存日期

    有没有办法告诉 Hibernate java util Date 应该持久保存 我需要这个来解决 MySQL 中缺少的毫秒分辨率问题 您能想到这种方法有什么缺点吗 您可以自己创建字段long 或者使用自定义的UserType 实施后User
  • com.jcraft.jsch.JSchException:身份验证失败

    当我从本地磁盘上传文件到远程服务器时 出现这样的异常 com jcraft jsch JSchException Auth fail at org apache tools ant taskdefs optional ssh Scp exe
  • java8 Collectors.toMap() 限制?

    我正在尝试使用java8Collectors toMap on a Stream of ZipEntry 这可能不是最好的想法 因为在处理过程中可能会发生异常 但我想这应该是可能的 我现在收到一个我不明白的编译错误 我猜是类型推理引擎 这是
  • Jackson 将单个项目反序列化到列表中

    我正在尝试使用一项服务 该服务为我提供了一个带有数组字段的实体 id 23233 items name item 1 name item 2 但是 当数组包含单个项目时 将返回该项目本身 而不是包含一个元素的数组 id 43567 item

随机推荐

  • 牛牛的等差数列【线段树】

    题目链接 这里的突破口在于小于等于25且大于等于3的质数连乘在1e8左右 所以 我们可以在操作上 将其看作对1e8去求模 而不是对每个都进行预处理 时间复杂度 也就是说 我们排除这个预处理之后 直接就是降了10倍左右的复杂度 然后 给区间一
  • 涉密服务器虚拟化软件,虚拟化软件解决方案

    1 背景 随着涉密行业信息化建设和IT业务的快速增长 涉密行业传统信息化建设中对于服务器应用面临着如下困境 资源利用率低 传统服务器应用部署模式采用 烟囱式 架构 单个应用独享整个服务器资源 资源利用率低 业务上线周期长 新增业务时 需要重
  • python小游戏 消消乐小游戏设计与实现

    文章目录 0 项目简介 1 游戏介绍 2 实现效果 3 开发工具 3 1 环境配置 3 2 Pygame介绍 4 具体实现 5 最后 0 项目简介 Hi 各位同学好呀 这里是L学长 今天向大家分享一个今年 2022 最新完成的毕业设计项目作
  • codeforces 1215d D. Ticket Game

    题意 有长度为n的串 内容为0 9数字或 Mono先手 填数 Mono希望前n 2个数和 后n 2个数和 Bicarp希望相等 问谁能赢 记录两边的 数量lnum rnum 记录两边和lsum rsum 如果两边lnum rnum时 如果l
  • python文件读写方法手机,Python中文件的读写操作的几种方法

    对文件的操作 步骤为 打开一个文件 gt 读取 写入内容 gt 保存文件 文件读写的3中模式 1 w 写模式 它是不能读的 如果用w模式打开一个已经存在的文件 会清空以前的文件内容 重新写 w 是读写内容 只要沾上w 肯定会清空原来的文件
  • 浅谈 logback的MDC机制

    logback的MDC机制 1 MDC 介绍 MDC Mapped Diagnostic Context 映射调试上下文 即将一些运行时的上下文数据通过logback打印出来 是 一种方便在多线程条件下记录日志的功能 和SiftingApp
  • 后谷歌时代:谁能笑到最后?

    后谷歌时代 谁能笑到最后 自从谷歌把 g cn转向 www google com hk那天起 后谷歌时代已经来临 早在谷歌退出中国市场仅仅是传言时 搜狗 有道 搜搜纷纷叫嚣着抢夺谷歌在中国的市场份额 现在看来 抢夺谷歌中国市场份额的绝非搜狗
  • Cypress vs Playwright——哪个 JavaScript 测试框架更好?

    10 年前 自动化测试人员如果要编写 E2E 测试 主要使用 Selenium 每个有机会使用该解决方案的人都应该会记得设置 编写和调试是多么不愉快 在此过程中还创建了一些更有趣的自动化工具 例如 Webdriver io TestCafe
  • SonarLint(代码质量检测工具+案例+好习惯养成器)

    文章目录 参考文章 一 SonarLint是什么 代码质量检测器 SonarQube 和SonarCloud 二 代码质量问题案例 1 异常应该被记录或重新抛出 但不能同时被记录和重新抛出 2 局部变量不应该声明后立即返回或抛出 3 不使用
  • [carla]通过Twist指令控制carla中的车辆

    0 背景 通过carla ros bridge with example ego vehicle launch可以启动carla ros bridge 并在carla中生成一台可以遥控的车 roslaunch carla ros bridg
  • 前端js读取本地md或txt文件内容

  • mysql数据库日志查询

    Mysql数据库日志 日志分类 MySql日志类型 解析说明 错误日志 error log 当数据库启动 运行 停止时产生该日志 普通查询日志 general query log 客户端连接数据库执行语句时产生该日志 二进制日志 binar
  • 前端js拼接Json串

    前端js拼接json串 示例1 数组里面含对象 组成的json串 group
  • 带样式的HTML节点深拷贝

    引用自 摸鱼wiki 1 思路 使用 cloneNode true 深拷贝节点及其子节点的结构 利用 computedStyle 获取当前节点的样式 遍历获取的样式结构体 赋值给复制节点 递归子节点 循环进行2 3步 2 代码示例 func
  • 汽车保养项注意-2

    基本信息 大众朗逸刹车油每4万公里可更换一次 价格在200元左右 这应该定期更换 5万换一次即可 刹车片6 8万公里换一次 刹车盘7万公里 发动机内部养护 燃油系统养护 四轮定位是对整车行车轨迹的检查修正 包括悬挂 底盘 零部件等的调整 动
  • OAuth2四种模式

    OAuth2四种模式 一 隐式授权模式 Implicit Grant 流程图 步骤 优缺点及适用场景 二 授权码授权模式 Authorization code Grant 流程图 步骤 优缺点及适用场景 三 密码模式 Resource Ow
  • 计算机操作系统中常用算法总结

    计算机操作系统中常用算法总结 一 动态分区分配算法 1 首次适应算法 最先适应算法 按照分区的先后次序 从头开始查找 找到符合要求的第一个分区 2 循环首次适应算法 下次适应算法 按照分区的先后次序 从上次已分配的分区起查找 到达最后一个分
  • 上知天文,下知地理,还能替人写脚本!人工智能的进阶ChatGPT

    ChatGPT是OpenAI在11月30日推出的聊天机器人 于12月1日起对公众免费开放 自从这东西出来之后 大家对此的讨论热情越发浓烈 ChatGPT具体可以干些什么 帮你写论文 检讨书 情书 甚至情诗也能信手拈来 以上都是网友测试它写出
  • python numpy数组

    1 数组创建 import numpy arr numpy array 11 22 33 44 55 print arr 输出 11 22 33 44 55 数组属性查看 print type arr 输出
  • java 注解 @Retention @interface 元数据

    java注解 即是注释了 百度解释 也叫元数据 一种代码级别的说明 个人理解 就是内容可以被代码理解的注释 一般是一个类 元数据 也叫元注解 是放在被定义的一个注解类的前面 是对注解一种限制 只有两个 Retention 和 Target