A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周发建 中级黑马   /  2016-3-29 10:24  /  290 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一、注解(一)注解
注解 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());
                }
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马