新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这期内容当中小编将会给大家带来有关Java 注解的使用方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
创新互联建站专注于企业成都营销网站建设、网站重做改版、望花网站定制设计、自适应品牌网站建设、H5场景定制、商城系统网站开发、集团公司官网建设、外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为望花等各大城市提供网站开发制作服务。注解说明
Java注解又称Java标注,是Java语言5.0版本开始支持加入源代码的特殊语法元数据。为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便的使用这些数据。Java语言中的类、方法、变量、参数和包等都可以被标注。和Javadoc不同,Java标注可以通过反射获取注解内容。在编译器生成类文件时,注解可以被嵌入到字节码中。Java虚拟机可以保留注解内容,在运行时可以获取到注解内容。
内置注解
Java定义了一套注解,共有7个,3个在java.lang中,剩下4个在java.lang.annotation中。
1.作用在代码的注解是:
2.作用在其他注解的注解(或者说元注解)是:
3.从Java 7开始,额外添加了3个注解:
元注解
元注解就是上面说到的作用在其他注解上的注解。
1.@Retention:表明该注解的生命周期
生命周期类型 | 描述 |
---|---|
RetentionPolicy.SOURCE | 标记的注释仅保留在源级别中,并由编译器忽略。 |
RetentionPolicy.CLASS | 标记的注释在编译时由编译器保留,但Java虚拟机(JVM)会忽略。 |
RetentionPolicy.RUNTIME | 标记的注释由JVM保留,因此运行时环境可以使用它。 |
2.@Documented:表明该注解标记的元素可以被Javadoc或类似的工具文档化
3.@Target: 表明该注解可以应用的java元素类型
Target类型 | 描述 |
---|---|
ElementType.TYPE | 可以应用于类的任何元素。 |
ElementType.FIELD | 可以应用于字段或属性。 |
ElementType.METHOD | 可以应用于方法级注释。 |
ElementType.PARAMETER | 可以应用于方法的参数。 |
ElementType.CONSTRUCTOR | 可以应用于构造函数。 |
ElementType.LOCAL_VARIABLE | 可以应用于局部变量。 |
ElementType.ANNOTATION_TYPE | 可以应用于注释类型。 |
ElementType.PACKAGE | 可以应用于包声明。 |
ElementType.TYPE_PARAMETER | 1.8版本新增,应用于类型变量 |
ElementType.TYPE_USE | 1.8版本新增,应用于任何使用类型的语句中(例如声明语句、泛型和强制转换语句中的类型) |
4.@Inherited:表明使用了@Inherited注解的注解,所标记的类的子类也会拥有这个注解
5.@Repeatable:Java SE 8中引入的,@Repeatable注释表明标记的注释可以多次应用于相同的声明或类型使用(即可以重复在同一个类、方法、属性等上使用)。
自定义注解
其实说了这么多,都是一些总结性的知识点,我敢说到现在,大家还是对注解是云里雾里的。想要更好的认识注解,只有我们自己定义一个注解,来实现一个我们的注解,通过实现一个我们自己的注解来熟悉注解的工作流程。
Java中自定义注解和创建一个接口相似,声明一个注解要用到以下东西:
同时需要注意以下事项:
规则知道了,下面我来编码实现一个自定义的注解。比如我们在实现一个自定义的ORM框架的时候,都会通过注解来实现数据表名与JAVA类的映射,表字段与JAVA类字段的映射关系,下面就来简单实现这个功能。
定义Table注解:
package com.jellythink.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(value={ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) public @interface Table { String value(); }