标签:注释
@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
标签:注释
原文地址:http://jiangzuun2014.blog.51cto.com/8732469/1533991