注解的定义与反射调用
2019独角兽企业重金招聘Python工程师标准>>>
一、注解的应用结构图
二、自定义注解及其应用
1、@Retention元注解
包含三种取值(枚举):RetetionPolicy.SOURCE、RetetionPolicy.CLASS、RetetionPolicy.RUNTIME;分别对应:java源文件-->class文件-->内存中的字节码(默认值为RetentionPolicy.CLASS)
思考:@Override、@SuppressWarnings和@Deprecated这三个注解的属性值分别是什么?
RetetionPolicy.SOURCE、RetetionPolicy.SOURCE、RetetionPolicy.RUNTIME
2、@Target元注解
Target的默认值为任何元素,设置Target等于ElementType.METHOD,原来加在类上的注解就报错了,改为用数组方式设置{ElementType.METHOD,ElementType.TYPE}就可以了
三、代码说明
1、LH.java
package staticimport.annotation;import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;@Retention(RetentionPolicy.RUNTIME)//元注解
@Target({ElementType.TYPE,ElementType.METHOD})
public @interface LH {}
2、AnnotationTest.java
package staticimport.annotation;@LH
@SuppressWarnings("deprecation")
public class AnnotationTest {public static void main(String[] args) {System.runFinalizersOnExit(true);AnnotationTest.sayHello();if(AnnotationTest.class.isAnnotationPresent(LH.class)){LH lh = (LH) AnnotationTest.class.getAnnotation(LH.class);System.out.println(lh);}}//标注本方法已过时,提示用户不要再使用!但不影响已经使用的!@Deprecated@LHpublic static void sayHello(){System.out.println("Hello,LH!");}}
参考资料
1、@Retention注解
2、Java Annotation的RetentionPolicy介绍
转载于:https://my.oschina.net/Howard2016/blog/1615596
注解的定义与反射调用相关推荐
- CodeDom系列--事件(event)定义和反射调用
CodeDom提供了对事件的支持,以及我们可以用反射机制对CodeDom生成的事件进行注册,以及调用.本节程序很简单,先贴上我将用CodeDom生成的代码: namespace CodeDomDemo ...
- java反射--注解的定义与运用以及权限拦截
自定义注解类编写的一些规则: 1. Annotation型定义为@interface, 所有的Annotation会自动继承java.lang.Annotation这一接口,并且不能再去继承别的类或是 ...
- java privilege的用法_java反射--注解的定义与运用以及权限拦截
自定义注解类编写的一些规则: 1. Annotation型定义为@interface, 所有的Annotation会自动继承java.lang.Annotation这一接口,并且不能再去继承别的类或是 ...
- 通过自定义注解,AOP,反射,Group分组编写适用于各层级通用性手动调用validate方法
通过自定义注解,AOP,反射,group分组编写适用于[*Controller,*RemoteImpl,*ServiceImpl]通用性手动调用validate方法 拓展方式:该通用方法可扩展性,通用 ...
- AnnotationConfigApplicationContext 通过调用注解Bean 定义读取器
AnnotatedBeanDefinitionReader 的register()方法向容器注册指定的注解Bean,注解Bean 定义读取器向容器注册注解Bean 的源码如下: //注册多个注解Bea ...
- @param注解什么意思_Java反射是什么?看这篇绝对会了!
反射是一个非常重要的知识点,在学习Spring 框架时,Bean的初始化用到了反射,在破坏单例模式时也用到了反射,在获取标注的注解时也会用到反射······ 当然了,反射在日常开发中,我们没碰到过多少 ...
- java 反射 参数 注解_Java编程之反射中的注解详解
"注解"这个词,可谓是在Java编程中出镜率比较高,而且也是一个老生常谈的话题.我们之前在聊Spring相关的东西时,注解是无处不在,之前我们简单的聊过一些"注解&quo ...
- 彻底搞懂Java注解Annotation(含注解的定义 原则 作用)
注解的定义 定义 注解:提供一种为程序元素设置元数据的方法. 基本原则:注解不能直接干扰程序代码的运行,无论增加或删除注解,代码都能够正常运行. 注解(也被成为元数据)为我们在代码中添加信息提供了一种 ...
- 如何通过反射调用扩展方法?
在某日回答MSDN客户问题的时候,碰到了一道对我而言新奇的题目(大牛们不要嘲笑俺,可能我少见多怪,写此文算是给出道着们遇到此类问题提一个醒) 题目如下: var list=new List<st ...
最新文章
- 15Proxy(代理)模式
- 使用 u-boot 烧写内核——韦东山嵌入式Linux学习笔记10
- 版本控制系统客户端VisualSVN的安装与使用(for Visual Studio)
- 有了报表FineReport,为什么还要上FineBI?
- 简单的C#字符串数组转字符串方法
- 秘密网络中使用计算机病毒,利用计算机病毒盗窃网络虚拟财产行为定性分析——以“熊猫烧香”案为例...
- 使用 guard 的正确姿势
- Ansible+Redfish+Idrac管理DELL服务器
- 如何在cad中模块计算机,AutoCAD如何创建块 CAD模块创建方式一览
- 十进制和二进制之间的转换
- lazy java_深入理解 Spring @Lazy 注解以及最佳实践
- P2360 地下城主
- 程序员如何避免「温水煮码农」
- 推荐|脚本2分钟实现电话短信报警
- Centos7.5下pip安装第三方库时出现提示:You are using pip version 8.1.2, however version 10.0.1 is available.
- 浅谈web前端常用的三大主流框架
- python全栈生鲜电商_Django REST framework+Vue 打造生鲜电商项目(笔记一)
- 数据库题目之并发控制
- 蓝桥杯算法训练 无聊的逗(状态压缩搜索)
- JDE(j的拼音格式怎么写)
热门文章
- jquery 如何插入元素
- java 静态 编译_Java中的动态和静态编译
- python输入一个字符串、计算其中小写字符的个数_编写程序,输入一个字符串,统计其中大小写字母数字和其他符号的个数并输出,要求统计过程在函数COUNT中进行...
- gmat模考_第一次完整模考总结,GmatPrep~~
- xxxxxxxxxccccxcc
- linux执行sh文件 查进程,linux – 用于检查进程是否已在运行的Shell脚本,如果是,则退出...
- java 注解 @?(name=quot;usernamequot;),【MyBatis】MyBatis 注解开发
- python判断回文_Python实现判断一个整数是否为回文数算法示例
- c语言字符数组赋值_C语言关于结构体字符成员元素赋值的方法
- python结构体数组传出接收c动态库_使用Python向C语言的链接库传递数组、结构体、指针类型的数据...