一、注解(一)注解 注解 Annotation:标记 用于替代配置文件,传统方式利用配置文件告诉类如何运行,有了注解后,开发人员可以通过注解告诉类如何运行。 /** * @SuppressWarnings 去除警告 压制警告 * @Deprecated 过时,不建议 * @Override 重载 * * 标记可以加在包、类、字段、方法、参数上 * * 元注解 * @Retention 保留范围 * @Target 使用目标 */ (二)自定义注解//--1. 声明注解 //@Retention(RetentionPolicy.SOURCE) //保留到源代码 仅在源代码上使用这个注解,编译成Class时注解没有了 //@Retention(RetentionPolicy.CLASS) //保留到Class,默认 @Retention(RetentionPolicy.RUNTIME) //保留到运行时, 如果需要在程序中获取注解信息,必须作用在运行时 @Target({ElementType.TYPE,ElementType.METHOD, ElementType.FIELD,ElementType.PACKAGE, ElementType.CONSTRUCTOR}) @interface A{ String value(); String color() default "bulue"; int[] arr() default {1,2,3}; //属性类型:8种基本 String Class 数组(这些类型的一维数组) 枚举 注解 } //--2. 使用注解 @A("abc") class B{ } //--3. 检测 class C{ public void show(){ boolean b = B.class.isAnnotationPresent(A.class); if(b){ A a = B.class.getAnnotation(A.class); System.out.println(a.color()); System.out.println(a.arr()); } } }
|