注解底层实现

来源:互联网 发布:mysql查询重复数据优化 编辑:程序博客网 时间:2024/06/03 09:05
package pannotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Target(value={ElementType.FIELD,ElementType.METHOD})@Retention(value=RetentionPolicy.RUNTIME)public @interface MyYZ {//基本注解:重写,过时,抑制警告//元注解:目标,存活期,文档,继承//目标有哪些(PACKAGE\TYPE\ANNOTATION_TYPE\PARAMTER\METHOD\FIELD\LOCAL_VARIABLE)//存活期(SOURCE\CLASS\RUNTIME)String value();String Y();String Z() default "234";int[] w() default{};}





package pannotation;import java.lang.annotation.Annotation;/** *  * @author 汪方晨 * */ public class Test {@MyYZ(value="234",Y="80",Z="1353d",w={2,4,7,9})@SuppressWarnings({"all"})public void show(){}public static void main(String[] args){//反射来测试Class<?> clazz=Test.class;try {Annotation[] as=clazz.getMethod("show").getAnnotations();for(Annotation a:as){if(a instanceof  MyYZ){MyYZ yz=(MyYZ)a;System.out.println(yz.Y());}}} catch (NoSuchMethodException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SecurityException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}


0 0