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

注解的定义与反射调用相关推荐

  1. CodeDom系列--事件(event)定义和反射调用

    CodeDom提供了对事件的支持,以及我们可以用反射机制对CodeDom生成的事件进行注册,以及调用.本节程序很简单,先贴上我将用CodeDom生成的代码: namespace CodeDomDemo ...

  2. java反射--注解的定义与运用以及权限拦截

    自定义注解类编写的一些规则: 1. Annotation型定义为@interface, 所有的Annotation会自动继承java.lang.Annotation这一接口,并且不能再去继承别的类或是 ...

  3. java privilege的用法_java反射--注解的定义与运用以及权限拦截

    自定义注解类编写的一些规则: 1. Annotation型定义为@interface, 所有的Annotation会自动继承java.lang.Annotation这一接口,并且不能再去继承别的类或是 ...

  4. 通过自定义注解,AOP,反射,Group分组编写适用于各层级通用性手动调用validate方法

    通过自定义注解,AOP,反射,group分组编写适用于[*Controller,*RemoteImpl,*ServiceImpl]通用性手动调用validate方法 拓展方式:该通用方法可扩展性,通用 ...

  5. AnnotationConfigApplicationContext 通过调用注解Bean 定义读取器

    AnnotatedBeanDefinitionReader 的register()方法向容器注册指定的注解Bean,注解Bean 定义读取器向容器注册注解Bean 的源码如下: //注册多个注解Bea ...

  6. @param注解什么意思_Java反射是什么?看这篇绝对会了!

    反射是一个非常重要的知识点,在学习Spring 框架时,Bean的初始化用到了反射,在破坏单例模式时也用到了反射,在获取标注的注解时也会用到反射······ 当然了,反射在日常开发中,我们没碰到过多少 ...

  7. java 反射 参数 注解_Java编程之反射中的注解详解

    "注解"这个词,可谓是在Java编程中出镜率比较高,而且也是一个老生常谈的话题.我们之前在聊Spring相关的东西时,注解是无处不在,之前我们简单的聊过一些"注解&quo ...

  8. 彻底搞懂Java注解Annotation(含注解的定义 原则 作用)

    注解的定义 定义 注解:提供一种为程序元素设置元数据的方法. 基本原则:注解不能直接干扰程序代码的运行,无论增加或删除注解,代码都能够正常运行. 注解(也被成为元数据)为我们在代码中添加信息提供了一种 ...

  9. 如何通过反射调用扩展方法?

    在某日回答MSDN客户问题的时候,碰到了一道对我而言新奇的题目(大牛们不要嘲笑俺,可能我少见多怪,写此文算是给出道着们遇到此类问题提一个醒) 题目如下: var list=new List<st ...

最新文章

  1. 15Proxy(代理)模式
  2. 使用 u-boot 烧写内核——韦东山嵌入式Linux学习笔记10
  3. 版本控制系统客户端VisualSVN的安装与使用(for Visual Studio)
  4. 有了报表FineReport,为什么还要上FineBI?
  5. 简单的C#字符串数组转字符串方法
  6. 秘密网络中使用计算机病毒,利用计算机病毒盗窃网络虚拟财产行为定性分析——以“熊猫烧香”案为例...
  7. 使用 guard 的正确姿势
  8. Ansible+Redfish+Idrac管理DELL服务器
  9. 如何在cad中模块计算机,AutoCAD如何创建块 CAD模块创建方式一览
  10. 十进制和二进制之间的转换
  11. lazy java_深入理解 Spring @Lazy 注解以及最佳实践
  12. P2360 地下城主
  13. 程序员如何避免「温水煮码农」
  14. 推荐|脚本2分钟实现电话短信报警
  15. Centos7.5下pip安装第三方库时出现提示:You are using pip version 8.1.2, however version 10.0.1 is available.
  16. 浅谈web前端常用的三大主流框架
  17. python全栈生鲜电商_Django REST framework+Vue 打造生鲜电商项目(笔记一)
  18. 数据库题目之并发控制
  19. 蓝桥杯算法训练 无聊的逗(状态压缩搜索)
  20. JDE(j的拼音格式怎么写)

热门文章

  1. jquery 如何插入元素
  2. java 静态 编译_Java中的动态和静态编译
  3. python输入一个字符串、计算其中小写字符的个数_编写程序,输入一个字符串,统计其中大小写字母数字和其他符号的个数并输出,要求统计过程在函数COUNT中进行...
  4. gmat模考_第一次完整模考总结,GmatPrep~~
  5. xxxxxxxxxccccxcc
  6. linux执行sh文件 查进程,linux – 用于检查进程是否已在运行的Shell脚本,如果是,则退出...
  7. java 注解 @?(name=quot;usernamequot;),【MyBatis】MyBatis 注解开发
  8. python判断回文_Python实现判断一个整数是否为回文数算法示例
  9. c语言字符数组赋值_C语言关于结构体字符成员元素赋值的方法
  10. python结构体数组传出接收c动态库_使用Python向C语言的链接库传递数组、结构体、指针类型的数据...