课程咨询 :13486356750 QQ:1079585464

厦门达内java培训

  • 达内浅析Java注解知识

    发布:厦门Java培训      来源:慕课网      时间:2016-04-20


  •     厦门达内java培训专家讲一下注解的定义,以及自定义注解的方法。

    注解的基本概念

        注解(Annotation)提供了一种关联信息以及元数据的途径和方法。是一个接口,程序可以通过反射来获取指定程序元素中的 Annotation 对象,然后通过解析 Annotation 对象获取注解中的元数据。可以应用于包、类型、构造方法、方法、成员变量、参数、局部变量等等的声明中。在注解中以"name = value"的形式存储。 

        Annotation 不能影响程序代码的执行,尽管一些注解通过反射技术可以在运行时被访问,但是java的语言解释器在工作时是忽略他们的。 

        注解的分类: 

        标记注解: 没有成员定义的注解类型称为标记注解,用于提供给我们某种信息; 

        单值注解: 注解中只有一个元素,元素的名称为value,可以写成 @annotation(value)的形式,省略 name,其中 value 就是注解value元素对应的值。 

        完整注解: 

    元注解

        所谓元注解即是注解的注解,用来负责对其他注解进行注解。 

        Java5提供了4个标准的元注解(meta-annotation)类型: 

        @Target 

        含义: 指定注解修饰的对象的范围,通俗的讲就是注解使用的时候要放在哪里(方法上,类上等等) 

        取值(ElementType):

        CONSTRUCTOR: 描述构造器 
        FIELD: 描述域属性 
        LOCAL_VARIABLE: 描述局部变量 
        METHOD: 描述方法 
        PACKAGE: 描述包 
        PARAMETER: 描述参数 
        TYPE: 描述类、接口或注解、枚举类型 enum 

        @Retention 

        含义: 定义注解保留的时长,限制注解的生命周期。 

        取值(RetentionPolicy): 

        SOURCE: 源文件保留,被编译器所丢弃 
        CLASS: 在字节码文件(*.class)中保留,被JVM所丢弃 
        RUNTIME: 在运行时保留 

        @Inherited 

        含义: 被标注的类型是被继承的,使用 @Inherited 修饰的类型作用于一个 class 上时,那么注解也将应用在该 class 的子类。 

        @Documented 

        含义: 可以使用 javadoc 工具进行文档化操作。 

    自定义注解 

        使用 @interface 自定义注解的时,继承 java.lang.annotation.Annotation 接口。被定义的注解不能再继承其他的注解或接口。注解中的每一个方法实际上相当于声明配置参数。其中方法的名称就是参数的名称,方法不能有任何的参数和 throws 语句,方法的返回值就是参数的类型(返回值类型只能是基本数据类型、Class、String、enum、Annotation),同时可以使用default关键字来声明参数的默认值。 

        注解的参数设置: 

        使用 public 和默认(default)权限修饰符; 

        参数成员只能使用八种基本数据类型以及 String、Class、Enum、Annotation 以及相应的数组型; 

        如果注解中只含有一个参数,建议设置为 value(); 

        使用 default 关键字可以指定注解元素的默认值。注解要求定义的元素必须有确定的值,因此要么在注解的默认值中指定,要么在使用注解的时候指定。非基本数据类型的值不允许是 null。因此,经常使用空字符串(Void.class)或者0来作为默认值。也可以使用负数或空字符串来表示某个元素不存在。 

    注解解析器

        注解并不会影响代码的运行,因此必须配合解析器使用,否则注解和注释也没什么具体的区别了。使用Java反射API中的 AnnotatedElement 接口可以方便进行注解的解析。







    作者: Michaelix
    链接:http://www.imooc.com/article/6705
    来源:慕课网

上一篇:Java程序员要留意的5个Docker误区

下一篇:Java基本数据类型、字符串、包装类的三者转换

最新开班日期  |  更多

Java--大数据周末班

Java--大数据周末班

开班日期:每周一

Java--大数据全日制班

Java--大数据全日制班

开班日期:每周一

Java--零基础周末班

Java--零基础周末班

开班日期:每周一

Java--零基础全日制班

Java--零基础全日制班

开班日期:每周一

  • 地址:厦门软件园二期望海路59号之一401达内科技
  • 课程培训电话:13486356750 QQ:1079585464     全国服务监督电话:400-111-8989
  • 服务邮箱 tousu@tedu.cn
  • 2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56