`
student_lp
  • 浏览: 438008 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多

     Annotation是java中重要的特性,该技术在spring、Habinate等框架中大量使用。通过java自带的三种注释,来窥探注释的应用和原理,这样在后面使用这些框架的时候,可以迅速上手。

     注释是什么?注释为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后某个时刻非常方便的使用这些数据。

     为什么要用注释?注释实现了对元数据的支持,能够使开发人员在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息,并且这些信息可以通过编译器检查格式的正确性。通过使用注释,我们可以将这些元数据保存在java源代码中,并利用annotation API为自己的注解构造处理工具,同时,注释的优点还包括:更加干净易读的代码以及编译期类型检查等。

一、注释的使用

①注释可以用来修饰类、属性、方法,而且Annotation不影响程序运行,无论是否使用Annotation代码都可以正常执行。java.lang.annotation.Annotation是Annotation的接口,只要是Annotation都必须要实现此接口。接口的定义如下:

   public   interface   Annotation{

            public Class<? extends Annotation> annotationType();

            public boolean  equals(Object obj);

            public int   hashCode();

            String toString();

    }

②java内建的Annotation。在jdk1.5之后,系统已经建立了3个内建的Annotation类型,用户直接使用即可,他们分别是:

  • Override---覆写的Annotation;
  • Deprecated----不赞成使用的Annotation
  • SuppressWarnings----压制安全警告的annotation.

以上3个Annotation都是前面提到的Annotation接口的子类。在java中都有各自的定义,如下:


 其中:①@Override主要在方法覆写时使用,用于保证方法覆写时使用,用于保证方法覆写的正确性。如果方法没有达到覆写的要求,则在类编译时,就会哭抛出异常;并且该注释只能用于检测方法的覆写上,其他元素,如类、属性等不能使用。②@Deprecated的主要功能是用来声明一个不建议使用的方法。如果在程序中使用了此方法,则在编译时将出现警告信息。该注释除了方法上声明外,在类中也可以进行声明,表示该类不建议使用。③@SuppressWarnings主要功能是用来压制警告。并且在使用的过程中,可以设置压制警告的类别,使用时,以字符串数组的形式进行声明。该注释支持的关键字如下:


 二、自定义Annotation

之前介绍了3中java中定义的Annotation,只要通过固定的格式调用即可。但是想要充分理解Annotation的作用必须结合枚举、反射等机制才可以。所以,下面介绍如何定义Annotation。

1、Annotation的定义格式:

[public]  @interface  Annotation名称{

      数据类型   变量名称();

}

注意:在定义Annotation必须使用@interface的方式进行定义。在定义Annotation时也可以定义各种变量,但是变量定义之后必须使用“()”。

提示:使用@interface就相当于继承了Annotation接口。在程序中使用了@interface声明Annotation,那么此Annotation实际上就相当于继承了java.lang.annotation.Annotation接口。

2、自定义一个Annotation,如下:


3、使用自定义注释,并设置注释属性值。


 注意:通过上面的例子我们可知,如果注释中定义的属性没有设置默认值,则在使用注释的时候,需要给属性设置值;如果设置了默认值,则在使用时,可以不用指定值;如果想要为一个属性设置多个内容,则必须将一个属性定义成一个数组。

 4、Retention和RetentionPolicy

在Annotation中,可以使用Retention定义一个Annotation的保存范围。此Annotation的定义如下:


 在以上的Retention定义中存在一个RetentionPolicy的变量,此变量用于指定Annotation的保存范围,RetentionPolicy包含3个范围,如下:


 并且我们可以看一下java的3个内建Annotation的定义:

①ovrride定义采用的是@Retention(value=SOURCE),只能在源文件中出现;

②Deprecated定义采用的是@Retention(value=RUNTIME),可以在执行时出现。

③SuppressWarnings定义采用的是@Retention(value=SOURCE),只能在源文件中出现。

三、通过反射取得Annotation

      如果要让一个Annotation起作用,则必须结合反射机制。在Class类中存在一下几个与Annotation操作有关的方法,如下:


 我们通过下面的例子查看:


 运行结果为:18     student      [170, 80]

注意:①要取得toString()方法上的全部注释,则必须首先通过反射找到toString()方法。

②虽然我们在定义一个方法时,会使用很多Annotation注释,但是最后真正得到的只能是@Retention(value=RUNTIME)的。

③通过程序我们可以取得一个元素所声明的全部RUNTIME的Annotation,但是如果只需要某个指定的Annotation,则在取得之前就必须进行明确的判断,使用isAnnotationPresent()方法进行判断。

 四、@Target注释

      如果一个Annotation没有明确的指明定义的位置,则可以在任意的位置使用,而如果希望一个自定义的Annotation只能在指定的位置上出现,则必须使用@Target注释。在Target的注释中存在一个ElementType[]枚举类型的变量,这个变量主要指定Annotation的使用限制,如下:


 通过使用@target({ElementType.TYPE,ElementType.METHOD}),限定Annotation的出现位置,如果没有出现在指定的位置,则在编译时抛出异常。

四、还常用的一些注释

1、@Documented注释。任何一个自定义的Annotation实际上都是通过@Documented进行注释的,在生成javadoc时通过@Documented将一些文档的说明信息写入。

2、Inherited注释。用于注释一个父类的注释是否可以被子类继承,如果一个Annotation需要被其子类继承,则在声明时直接使用@Inherited注释即可。如果在声明Annotation时没有加上@Inherited注释,则此Annotation是无法被继承的。

  • 大小: 49.1 KB
  • 大小: 105 KB
  • 大小: 6.1 KB
  • 大小: 9 KB
  • 大小: 9.4 KB
  • 大小: 60 KB
  • 大小: 61.6 KB
  • 大小: 25.3 KB
  • 大小: 73.3 KB
分享到:
评论

相关推荐

    java5.0注释详解

    以上就是Java 5.0中关于注释以及其他相关特性的详细解释,这些改进不仅提高了代码的可读性和维护性,也增强了Java作为企业级开发语言的能力。对于开发者来说,理解并熟练掌握这些特性是非常重要的,因为它们已经成为...

    Eclipse Java注释模板设置详解

    ### Eclipse Java注释模板设置详解 在开发过程中,良好的代码注释习惯对于提高代码的可读性和维护性具有重要作用。Eclipse作为一款流行的Java集成开发环境(IDE),提供了丰富的功能来帮助开发者更好地管理代码和...

    java的注释规范(单行注释、多行注释、分块注释)

    java 注释规范详解 java 注释规范是 Java 开发过程中不可或缺的一部分,它的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失。java 注释规范可以分为三种:单行注释...

    Eclipse Java注释模板.txt

    ### Eclipse Java注释模板知识点详解 #### 一、概述 在进行Java开发的过程中,良好的代码注释习惯不仅能帮助自己快速回顾代码逻辑,还能方便其他开发者理解代码意图,从而提高整个团队的工作效率。Eclipse作为一款...

    Java的注释

    本文将详细介绍几种常见的Java注释方式及其用途,并通过实例展示如何设置Eclipse IDE中的注释模板,帮助开发者更好地管理和组织代码。 #### 一、Java注释概述 Java提供了三种类型的注释: 1. **单行注释(//)**:...

    java注释规范文档

    #### 三、文档注释详解 文档注释是一种特殊的注释形式,它使用`/**`开始,`*/`结束。这种注释的主要目的是为了配合javadoc工具生成文档。javadoc工具能够根据这些注释自动生成高质量的文档,这些文档通常以HTML格式...

    JAVA编程注释规范详解

    #### 四、JAVA注释方法及格式 1. **单行注释** 单行注释使用“//”开头,适合简短的注释。如果单行无法完成,则应采用块注释。注释前最好有一行空行,并与后面的代码保持相同的缩进。 2. **块注释** 块注释...

    Eclipse/MyEclipse Java注释模板设置详解

    这篇详细的教程将深入讲解如何在Eclipse和MyEclipse中设置Java注释模板,以提高开发效率和代码规范性。 一、Eclipse与MyEclipse的区别 Eclipse是一款开源的IDE,而MyEclipse是其商业版本,包含了更多的企业级开发...

    java注释规范

    Java 注释规范详解 Java 注释规范是 Java 语言中一个非常重要的部分,它不仅能够提高代码的可读性和可维护性,还能够帮助其他开发者更好地理解代码的逻辑和意图。下面我们将详细介绍 Java 注释规范的各个方面。 ...

    Eclipse Java注释模板设置详解以及版权声明

    编辑注释模板的方法:Window-&gt;Preference-&gt;Java-&gt;Code Style-&gt;Code Template 然后展开Comments节点就是所有需设置注释的元素啦。 下载该文件后选择右侧Import导入该文件就创建模板成功了. 可以点击每一个选项根据...

    eclipse java注释模板

    Eclipse Java注释模板设置详解 Eclipse Java注释模板设置详解 设置注释模板的入口: Window-&gt;Preference-&gt;Java-&gt;Code Style-&gt;Code Template 然后展开Comments节点就是所有需设置注释的元素啦。现就每一个元素逐一...

    Java注释规范整理.pdf

    ### Java注释规范详解 #### 一、引言 在软件开发过程中,代码注释扮演着极其重要的角色。良好的注释不仅有助于提升代码的可读性和可维护性,还能促进团队成员之间的有效沟通。然而,关于Java注释的具体规范却常常...

    myeclipse/eclipse设置java文档注释

    ### myEclipse/Eclipse 设置 Java 文档注释详解 #### 一、引言 在进行软件开发的过程中,良好的代码注释习惯对于提升代码可读性和维护性至关重要。特别是在团队协作中,规范化的文档注释能够帮助团队成员更快地理解...

    java编码规范及注释快捷键.doc

    ### Java编码规范详解 #### 一、文件组织与布局原则 Java编码规范是软件开发过程中不可或缺的一部分,它有助于提升代码的可读性、维护性和团队协作效率。在《java编码规范及注释快捷键》文档中,我们首先关注的是...

    java文档注释要求

    ### Java文档注释要求详解 #### 一、引言 在软件开发领域,编写高质量的代码不仅是技术实力的体现,更是职业素养的重要标志之一。其中,文档注释(JavaDoc Comments)作为源代码的一部分,对于提升项目的可维护性...

    java扫雷代码详解

    Java扫雷代码详解 扫雷游戏作为经典的益智类游戏,在计算机编程的学习中经常被作为练习项目。尤其是在Java编程语言学习过程中,由于Java的跨平台特性和丰富的图形用户界面(GUI)组件,Java扫雷成为了许多初学者...

    eclipse 配置JAVA注释

    Eclipse 配置 Java 注释模板详解 Eclipse 是一个功能强大且广泛使用的集成开发环境(IDE),其中 Java 是其支持的主要编程语言之一。为了提高代码的可读性和可维护性,添加合适的注释是非常重要的。Eclipse 提供了...

    JAVA注释规范 内容来自网络

    ### JAVA注释规范详解 #### 一、引言 在软件开发过程中,良好的代码注释习惯对于提升代码可读性、降低后期维护成本至关重要。然而,在很多情况下,开发者们并没有一个明确而统一的注释规范作为参考标准。本文旨在...

Global site tag (gtag.js) - Google Analytics