当前位置: 首页 > 编程日记 > 正文

Annotation

在进行类或方法定义的时候,都可以使用一系列的Annotation(public interface Annotation)进行声明,如果想要获取这些Annotation的信息,可以直接通过反射来完成。在 java.lang.reflect 里面有一个AccessibleObject类,在本类中提供有Annotation类的方法:

1.获取全部Annotation:public Annotation[] getAnnotations();

2.获取指定Annotation:public <T extends Annotation> T getAnnotation​(Class<T> annotationClass)

package com.annotation.demo;import java.io.Serializable;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;@FunctionalInterface
@Deprecated(forRemoval = false,since = "1.1")
interface IMessage{public void send(String msg);
}@SuppressWarnings("serial")
class MessageImpl implements IMessage,Serializable{@Override@Deprecated(since = "1.3")public void send(String msg) {System.out.println("【消息发送】" + msg);}
}public class annotationdemo {public static void main(String[] args) throws Exception {{System.out.println("-----------------------IMessage接口:-----------------------------");Annotation annotations[] = IMessage.class.getAnnotations();//获取接口上的全部Annotationfor(Annotation annotation:annotations){System.out.println(annotation);}}{System.out.println("-----------------------MessageImpl子类:-----------------------------");Annotation annotations[] = MessageImpl.class.getAnnotations();//获取MessageImpl子类上的全部Annotationfor(Annotation annotation:annotations){System.out.println(annotation);}}{System.out.println("-----------------------send()方法:-----------------------------");Method method = MessageImpl.class.getDeclaredMethod("send", String.class);Annotation annotations[] = method.getAnnotations();//获取send方法上的全部Annotationfor(Annotation annotation:annotations){System.out.println(annotation);}}}
}

不同的Annotation有不同的作用范围:

Annotation名称作用范围
@SuppressWarnings

@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE, MODULE})

@Retention(RetentionPolicy.SOURCE)

public @interface SuppressWarnings {}

@FunctionalInterface

@Documented

@Retention(RetentionPolicy.RUNTIME)

@Target(ElementType.TYPE)

public @interface FunctionalInterface {}

@Deprecated
@Documented

@Retention(RetentionPolicy.RUNTIME)

@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, MODULE, PARAMETER, TYPE})

转载于:https://www.cnblogs.com/sunzhongyu008/p/11224907.html

相关文章:

GSG灰猩猩插件合集包

GSG灰猩猩插件合集包 GSG灰度大猩猩Plus中心插件HDRI和材料2021年 大小&#xff1a;59G 信息: 云桥网络 平台获取素材 这是最新的(截至2021年4月29日)GSG Plus HUB&#xff0c;包括Plus订阅的所有插件、材料和HDRIs。 支持c4d版本:R23、S24(仅限Windows) 该包包含最新的GS…

百度地图JavaScript API自定义覆盖物、自定义信息窗口增删时的显示问题

项目中&#xff0c;需求&#xff1a;在百度地图上实时画出车辆&#xff0c;并能点击车辆弹出信息框查看实时信息。 实现&#xff1a;通过不停的画覆盖物并删除掉。点击覆盖物时弹出信息窗口。 问题&#xff1a;删除掉覆盖物后信息窗也删除掉了。因为信息窗是建立在覆盖物的基础…

英语计算机工程师求职信,电脑工程师的英文求职信样文

电脑工程师的英文求职信样文应届毕业生推荐是电脑工程师的英文求职信样文Dear Ms. Swainsforth:I am a registered engineer in the state of Michigan, and I am presently seeking a position in the roofing industry. A copy of my resume is enclosed, and I would like t…

java工程webservice的应用案例

在java项目中使用webservice 今天学习webservice&#xff0c;主要参考了网络上的一些文章。 1.关于原理的介绍&#xff1a;个人认为这篇文章写得不错了&#xff0c;戳这里。 2.关于demo的编写&#xff1a;个人认为这篇文章很简洁&#xff0c;也能运行成功&#xff0c;戳这里…

Vijos1683 有根树的同构问题

题目大意: 给出一堆树,求同构(拓扑结构相同)树的集合思路: 一开始写了个前序求置换序列,然后对比后序是否相等,但wa了,还需要对子树进行排序输出其dfs序,但是直接输出按节点多少排序的序列太复杂,于是将一个节点的dfs抽象成\(()\),于是对树\(1 -> 2 , 1 -> 3\)输出的dfs序…

3D广告建模-C4D Octane渲染视频教程

3D广告建模-C4D Octane渲染视频教程 时长4h 58m 960X540 MP4 大小解压后&#xff1a;833M 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; 信息: 云桥网络 平台 huo取 教程 C4D中Octane渲染的三维广告建模视频教程 包含字幕 了解如何在…

vue实例没有挂载到html上,vue 源码学习 - 实例挂载

前言在学习vue源码之前需要先了解源码目录设计(了解各个模块的功能)丶Flow语法。src├── compiler # 把模板解析成 ast 语法树&#xff0c;ast 语法树优化&#xff0c;代码生成等功能。├── core # 核心代码 Vue.js 的灵魂├── platforms # 不同平台的支持 web 和 weex├…

为何Redis要比Memcached好用(转)

转载链接&#xff1a;http://blog.csdn.net/renfufei/article/details/40598889 GitHub版本地址: https://github.com/cncounter/translation/blob/master/tiemao_2014/Redis_beats_Memcached/Redis_beats_Memcached.md 副标题: Redis是新兴的通用存储系统,而Memcached仍有其适…

2022-2028年中国数字化制造产业研究及前瞻分析报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国数字化制造行业市场行业相关概述、中国数字化制造行业市场行业运行环境、分析了中国数字化…

转载知乎上的一篇:“ 面向对象编程的弊端是什么?”

2019独角兽企业重金招聘Python工程师标准>>> 弊端是&#xff0c;没有人还记得面向对象原本要解决的问题是什么。1、面向对象原本要解决什么&#xff08;或者说有什么优良特性&#xff09;似乎很简单&#xff0c;但实际又很不简单&#xff1a;面向对象三要素封装、继…

Windows Azure 如何学习Azure

通过上一篇博文可以得知&#xff0c;Azure其实是个平台&#xff0c;上面跑的服务五花八门&#xff0c;可以相互分开使用&#xff0c;同时也可以相互结合。 那我们应该如何来学习Azure呢? 其实有很多种选择&#xff0c;正所谓条条大路通罗马&#xff0c; 官方的training kit 提…

最全面的Unity游戏开发指南视频教程 第2卷

最全面的Unity游戏开发指南视频教程 第2卷 流派:电子学习| MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;44.1 KHz 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09;|大小解压后:4.2 GB |时长:9h 24m 含项目文件 Unity游戏开发…

IOS面试题(二)

50. 谈谈对Block 的理解?并写出一个使用Block执行UIVew动画? 答&#xff1a;Block是可以获取其他函数局部变量的匿名函数&#xff0c;其不但方便开发&#xff0c;并且可以大幅提高应用的执行效率(多核心CPU可直接处理Block指令) 1 2 3 4 5 [UIView transitionWithView:self.…

辽宁省计算机专业A类,辽宁省2008年中职升高职招生考试计算机专业综合试题

辽宁省2008年中职升高职招生考试计算机及应用专业综合课试卷第一部分 必答题(200分)一、单项选择题(在每小题的四个备选答案中&#xff0c;选出一个正确的答案。每小题4分&#xff0c;共44分)1、在数据通信中&#xff0c;将模拟信号变换为数字信号的过程称为A 编码 B解码 C解调…

MyBatis的插入后获得主键的方式

需求&#xff1a; 使用MyBatis往MySQL数据库中插入一条记录后&#xff0c;需要返回该条记录的自增主键值。 方法&#xff1a; 在mapper中指定keyProperty属性&#xff0c;示例如下&#xff1a; <insert id"insertUser" useGeneratedKeys"true" keyP…

JAVA 中 13 种锁的实现方式

分布式系统时代,线程并发,资源抢占,慢慢变得很重要。那么常见的锁都有哪些?

String的Intern()方法,详解字符串常量池!

字符串拼接最好使用StringBuilder调用append来拼接。使用加号“+”拼接,会new一个StringBuilder,并且在最后调用toString方法时还会new String()。内存中由于创建了较多的StringBuilder和String对象,还有一方面是内存占用,调用GC还会额外花费时间。所以,字符串拼接直接使用StringBuilder会大大提高性能,尤其是多个字符串拼接。

硬盘盘符双击无法打开,只能右键打开(解决方法)(转载)

开始---运行---cmd&#xff0c;例如D盘&#xff0c;就输入  D: dir /a &#xff08;没有参数A是看不到的&#xff0c;A是显示所有的意思&#xff09; 此时你会发现一个autorun.inf文件   attrib autorun.inf -s -h -r 去掉autorun.inf文件的系统、只读、隐藏属性&#xff0…

Unity 2021创建2D休闲点击器游戏视频教程

Unity 2021创建2D休闲点击器游戏视频教程 Learn how to create a 2D Idle Clicker Game in Unity 2021 了解如何在Unity 2021中创建2D闲置点击器游戏 MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;44.1 KHz&#xff0c;2 Ch 语言&#xff1a;英语中英文字幕&…

html实现pdf预览打印机,Pdf操作(HTML转PDF,PDF直接网页连接打印机)

Pdf导出的操作&#xff1a;引用TuesPechkin.dll和TuesPechkin.Wkhtmltox.AnyCPU.dll程序集&#xff0c;新建PDF静态类 PDFConverter&#xff0c;在web.config配置保存dir/// ///pdf转换/// public static classPdfConvert {/// ///staticDeploymentPath/// private static read…

CUDA编程遇到的问题

1、总喜欢在core 代码中&#xff0c;访问device memory。 然后排错很久&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 2、第一次cudaMalloc() 耗时很久 3、cudaMalloc对于大数据也耗时很久 4、一致内存使用错误&#xff0c;不知道为什么&#xff01;&#xff…

2022-2028年中国数字化档案加工行业市场深度分析及发展策略分析报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国数字化档案加工行业市场行业相关概述、中国数字化档案加工行业市场行业运行环境、分析了中…

eclipse打开处于无响应状态解决办法

eclipse打开后处于无响应状态&#xff0c;变没有了反映&#xff0c;并且cup占用率为0。应该是非正常关机导致eclipse工作区的文件状态错误导致。 解决方案&#xff1a;在工作区目录中&#xff0c;有一个.metadata目录&#xff0c;里面是工作区及各插件的信息&#xff0c;删除此…

Unity创建在线多人游戏视频教程

Unity创建在线多人游戏视频教程 Learn To Create An Online Multiplayer Game In Unity 学会在Unity中创建在线多人游戏 MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;44.1 KHz&#xff0c;2 Ch 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更…

《需求分析》读后感之二

项目的目标是系统的业务需求。在很多情况下&#xff0c;涉众可以清晰地表达出系统的业务需求&#xff0c;这时可以通过安排和涉众的面谈来明确项目的动机。但也有很多情况下&#xff0c;涉众无法表达他们的业务需求&#xff0c;或者表达的业务需求不够清晰。因此&#xff0c;要…

统计学 计算机论文,统计学专业论文范文

1实验教学软件选择 目前流行的统计软件有SAS、SPSS、Statistica、EViews、Excel等&#xff0c;但上述软件的特点和功能优势各不相同&#xff0c;所以要根据学生的专业特点和教学要求选用不同的统计软件或者软件组合。但是由于专业统计软...2019-09-061非统计专业统计学教学过程…

JVM年轻代,老年代,永久代详解​​​​​​​

秉承不重复造轮子的原则&#xff0c;查看印象笔记分享连接↓↓↓↓ 传送门&#xff1a;JVM年轻代&#xff0c;老年代&#xff0c;永久代详解 速读摘要 最近被问到了这个问题&#xff0c;解释的不是很清晰&#xff0c;有一些概念略微模糊&#xff0c;在此进行整理和记录&…

html中#include file的使用方法

有两个文件a.htm和b.htm&#xff0c;在同一文件夹下a.htm内容例如以下 <!-- #include file"b.htm" --> b.htm内容例如以下 今天&#xff1a;雨 31 ℃&#xff5e;26 ℃ <br />明天&#xff1a;雷阵雨 33 ℃&#xff5e;27 ℃ 直接在浏览器中打开a&#…

Linux服务之Samba服务篇

Samba服务 桑巴Smb是基于cs架构 作用&#xff1a;用于跨平台进行文件共享 优点&#xff1a;兼容性好&#xff0c;较为安全(具备身份验证&#xff09; 缺点&#xff1a;仅限内网环境使用 应用&#xff1a;一般在办公环境下使用 rz 也是一种可以在Windows和Linux操作系统之间进行…

ue4商城素材 Cyberpunk City / Recife Environment 赛博朋克城市场景

ue4商城素材 Cyberpunk City / Recife Environment 赛博朋克城市场景 ue4商城素材 Cyberpunk City / Recife Environment 赛博朋克城市场景 ue4商城素材 Cyberpunk City / Recife Environment 赛博朋克城市场景 Unreal Engine虚幻游戏引擎素材资源 Unreal Engine Marketplace …