注解的定义与反射调用
2018-01-30 00:00
155 查看
一、注解的应用结构图
二、自定义注解及其应用
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 @LH public static void sayHello(){ System.out.println("Hello,LH!"); } }
相关文章推荐
- 33了解和入门注解的应用34 注解的定义与反射调用35为注解增加各种属性
- 注解的定义与反射调用
- Java基础---Java---基础加强---内省的简单运用、注解的定义与反射调用、 自定义注解及其应用、泛型及泛型的高级应用、泛型集合的综合
- Java基础---Java---基础加强---内省的简单运用、注解的定义与反射调用、 自定义注解及其应用、泛型及泛型的高级应用、泛型集合的综合
- 7.5.1注解的定义与反射的调用
- 注解的定义与反射调用
- 注解的定义与反射调用
- 注解的定义和反射调用
- 34_注解的定义与反射调用
- 利用反射调用注解
- 自定义注解(2)—定义和使用(利用反射获取)
- java反射--注解的定义与运用以及权限拦截
- 自定义注解以及反射得到当前的调用方法
- java反射--注解的定义与运用以及权限拦截
- 黑马程序员---注解与反射的调用以及添加各种属性
- java反射--注解的定义与运用以及权限拦截
- 用反射和注解实现对findViewById的简化调用
- C# 反射详解:定义、创建对象、调用实例方法及静态方法
- CodeDom系列--事件(event)定义和反射调用
- 注解:认识注解、注解的分类、注解的生命周期、自定义注解及反射调用、为注解添加属性