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是无法被继承的。
相关推荐
以上就是Java 5.0中关于注释以及其他相关特性的详细解释,这些改进不仅提高了代码的可读性和维护性,也增强了Java作为企业级开发语言的能力。对于开发者来说,理解并熟练掌握这些特性是非常重要的,因为它们已经成为...
### Eclipse Java注释模板设置详解 在开发过程中,良好的代码注释习惯对于提高代码的可读性和维护性具有重要作用。Eclipse作为一款流行的Java集成开发环境(IDE),提供了丰富的功能来帮助开发者更好地管理代码和...
java 注释规范详解 java 注释规范是 Java 开发过程中不可或缺的一部分,它的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失。java 注释规范可以分为三种:单行注释...
### Eclipse Java注释模板知识点详解 #### 一、概述 在进行Java开发的过程中,良好的代码注释习惯不仅能帮助自己快速回顾代码逻辑,还能方便其他开发者理解代码意图,从而提高整个团队的工作效率。Eclipse作为一款...
本文将详细介绍几种常见的Java注释方式及其用途,并通过实例展示如何设置Eclipse IDE中的注释模板,帮助开发者更好地管理和组织代码。 #### 一、Java注释概述 Java提供了三种类型的注释: 1. **单行注释(//)**:...
#### 三、文档注释详解 文档注释是一种特殊的注释形式,它使用`/**`开始,`*/`结束。这种注释的主要目的是为了配合javadoc工具生成文档。javadoc工具能够根据这些注释自动生成高质量的文档,这些文档通常以HTML格式...
#### 四、JAVA注释方法及格式 1. **单行注释** 单行注释使用“//”开头,适合简短的注释。如果单行无法完成,则应采用块注释。注释前最好有一行空行,并与后面的代码保持相同的缩进。 2. **块注释** 块注释...
这篇详细的教程将深入讲解如何在Eclipse和MyEclipse中设置Java注释模板,以提高开发效率和代码规范性。 一、Eclipse与MyEclipse的区别 Eclipse是一款开源的IDE,而MyEclipse是其商业版本,包含了更多的企业级开发...
Java 注释规范详解 Java 注释规范是 Java 语言中一个非常重要的部分,它不仅能够提高代码的可读性和可维护性,还能够帮助其他开发者更好地理解代码的逻辑和意图。下面我们将详细介绍 Java 注释规范的各个方面。 ...
编辑注释模板的方法:Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元素啦。 下载该文件后选择右侧Import导入该文件就创建模板成功了. 可以点击每一个选项根据...
Eclipse Java注释模板设置详解 Eclipse Java注释模板设置详解 设置注释模板的入口: Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元素啦。现就每一个元素逐一...
### Java注释规范详解 #### 一、引言 在软件开发过程中,代码注释扮演着极其重要的角色。良好的注释不仅有助于提升代码的可读性和可维护性,还能促进团队成员之间的有效沟通。然而,关于Java注释的具体规范却常常...
### myEclipse/Eclipse 设置 Java 文档注释详解 #### 一、引言 在进行软件开发的过程中,良好的代码注释习惯对于提升代码可读性和维护性至关重要。特别是在团队协作中,规范化的文档注释能够帮助团队成员更快地理解...
### Java编码规范详解 #### 一、文件组织与布局原则 Java编码规范是软件开发过程中不可或缺的一部分,它有助于提升代码的可读性、维护性和团队协作效率。在《java编码规范及注释快捷键》文档中,我们首先关注的是...
### Java文档注释要求详解 #### 一、引言 在软件开发领域,编写高质量的代码不仅是技术实力的体现,更是职业素养的重要标志之一。其中,文档注释(JavaDoc Comments)作为源代码的一部分,对于提升项目的可维护性...
Java扫雷代码详解 本篇文章主要讲解了Java扫雷程序的代码实现,通过对扫雷程序的代码注释,帮助初学者更好地理解扫雷程序的工作原理。 Java扫雷程序的设计 Java扫雷程序的设计主要分为三个步骤:第一步,extends ...
Eclipse 配置 Java 注释模板详解 Eclipse 是一个功能强大且广泛使用的集成开发环境(IDE),其中 Java 是其支持的主要编程语言之一。为了提高代码的可读性和可维护性,添加合适的注释是非常重要的。Eclipse 提供了...
### JAVA注释规范详解 #### 一、引言 在软件开发过程中,良好的代码注释习惯对于提升代码可读性、降低后期维护成本至关重要。然而,在很多情况下,开发者们并没有一个明确而统一的注释规范作为参考标准。本文旨在...