首页 > 代码库 > 自定义注释--
自定义注释--
@Retention(RetentionPolicy.RUNTIME)//@Retention元注释 说明该注释 存活期间在 运行期间 @Target( {ElementType.TYPE,ElementType.METHOD})//@Target元注释 说明该注释 适用于 类接口枚举和方法上 public @interface myAnnotation { //为注释定义属性 String name() default "ztt";//default定义属性默认值 缺省值 String value(); //数组类型 属性 int[] array() default {1,3,5}; //枚举类型属性 TrafficLamp lamp() default TrafficLamp.GREE;//独立的枚举 EnumDemo.TrafficLamp TLamp() default EnumDemo.TrafficLamp.GREE;//从属于类的枚举 //注释类型属性 annFormy ann() default @annFormy("hehe"); //class对象类型属性 Class<?> clazz() default String.class; //Class<String> clazz() default String.class; 区别在于 该class对象 只能表示 String类(String的class对象) }
测试
@myAnnotation(name = "flx", value = "ggo",array={1,2},lamp=TrafficLamp.GREE,ann=@annFormy("annotation"),clazz=int.class)//小括号 括起来 注释的属性 public class annotationTest { @myAnnotation(name = "hxl", value = "ggo",array={1,2},clazz=int.class)//小括号 括起来 注释的属性 @SuppressWarnings("deprecation") public static void main(String[] args) { // TODO Auto-generated method stub System.runFinalizersOnExit(true); //通过 反射 获取 注释对象 myAnnotation myann = annotationTest.class.getAnnotation(myAnnotation.class); System.out.println(myann.name()); System.out.println(myann.value()); System.out.println(myann.array().length); System.out.println(myann.lamp().next().name()); System.out.println(myann.ann().value()); System.out.println(myann.clazz().getName()); //将2进制数10000转为10进制数 16 将radix进制数string转为10进制数 (返回int) System.out.println(Integer.parseInt("10000", 2));//16 System.out.println(Integer.toBinaryString(2));//16 } }
本文出自 “要么拼命,要么滚回去!” 博客,请务必保留此出处http://jiangzuun2014.blog.51cto.com/8732469/1533991
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。