首页 > 代码库 > 回顾java Annotation(注解)
回顾java Annotation(注解)
package com.annotation.zjc; import java.lang.annotation.*; //以下三行是“元注解”,用于指明此注解的生命周期、使用范围和可被文档化 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @Documented public @interface Description { String value(); }
package com.annotation.zjc; import java.lang.annotation.*; @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.CONSTRUCTOR,ElementType.METHOD}) @Documented public @interface Resource { int id(); String name(); String type() default "Object"; //可以给出默认值 }
package com.annotation.zjc; @Description("Inject use annotation") //等同于@Description(value=http://www.mamicode.com/"Inject use annotation"),字段名称为value,可以用以上简写模式>
package com.annotation.zjc; import java.lang.reflect.Constructor; public class testMain { public static void main(String[] args){ ApplyAnnotation aa=new ApplyAnnotation(); Class<?> objclass=null; try{ objclass = Class.forName("com.annotation.zjc.ApplyAnnotation"); }catch(Exception e){} if(objclass!=null&&objclass.isAnnotationPresent(Description.class)){ Description des=objclass.getAnnotation(Description.class);//获取“注解对象” System.out.println(des.value()); } Resource r=null; if(objclass!=null){ Constructor<?> cons[]=objclass.getConstructors();//反射取得类的构造函数 for(Constructor<?> con:cons){ if(con.isAnnotationPresent(Resource.class)){ r=(Resource)con.getAnnotation(Resource.class);//获取“注解对象” } } } if(r!=null) aa.execute(r); } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。