自定义注释--
@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 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 stubSystem.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));//16System.out.println(Integer.toBinaryString(2));//16}} 转载于:https://blog.51cto.com/jiangzuun2014/1533991
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
