java中自定义注解的作用和写法

原创 2017年01月03日 11:38:25
Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。

注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。包含在 java.lang.annotation 包中。


自定义注解中需要包括四个元注解:@Retention @Target @Document @Inherited四种。


1、@Retention: 定义注解的保留策略.

     1.1 @Retention(RetentionPolicy.SOURCE)   //注解仅存在于源码中,在class字节码文件中不包含


     1.2 @Retention(RetentionPolicy.CLASS)     // 默认的保留策略,注解会在class字节码文件中存在,但运行时无法获得

     1.3 @Retention(RetentionPolicy.RUNTIME)  // 在运行时可以通过反射获取到,JVM会读取注解,同时保存在class文件中

2、@Target:定义注解的作用目标
      2.1 我这里只用到了ElementType里的field,当然也可以同时有几个。
           
           其中还包括:
           
@Target(ElementType.TYPE)   //作用于类、接口、枚举,但不能是注解
@Target(ElementType.FIELD) //用于字段、枚举
@Target(ElementType.METHOD) //用于方法、不能是构造方法
@Target(ElementType.PARAMETER) //用于方法的参数
@Target(ElementType.CONSTRUCTOR)  //用于构造函数
@Target(ElementType.LOCAL_VARIABLE)//局部变量,作用于本地变量或者catch语句
@Target(ElementType.ANNOTATION_TYPE)//作用于注解
@Target(ElementType.PACKAGE) //作用于   

3、@Document:说明该注解将被包含在javadoc中

4、@Inherited:说明子类可以继承父类中的该注解



@interface用于定义注解接口,接口中只能定义成员变量,且定义的成员变量必须以()结尾,可以有default关键字来指定默认值,如果没有default,则在使用注解时必须赋值。

下面是我的例子:

                           

    

                           


那么注解我们写好了,具体怎么用呢?

         1. getAnnotations():返回该程序元素上存在的所有注解。
         2. isAnnotationPresent(annotation.class):判断该程序元素上是否包含指定类型的注解
         3. getDeclaredAnnotations():返回直接存在于此元素上的所有注释。


测试类:

 


解析方法的第一种方式,

 



解析方法的第二种方式



版权声明:本文为博主原创文章,未经博主允许不得转载。

java自定义注解有什么作用?

转自:https://zhidao.baidu.com/question/1668622526729638507.html 自定义注解,可以应用到反射中,比如自己写个小框架。 如实现实...
  • suyu_yuan
  • suyu_yuan
  • 2016年11月22日 13:58
  • 1114

JAVA自定义注解的使用和定义

最近有所了解到自定义注解的应用,因此学习了一下,在项目后台接口开发中,数据的传输经常有对数据内容格式及一些信息规则的校验,应用注解在数据进入后台的开始使用自定义注解是一种比较可靠的方案。 一、注解的概...
  • tanyunlong_nice
  • tanyunlong_nice
  • 2016年12月10日 20:06
  • 933

java 自定义注解应用实例

本例子旨在使用自定义注解为实体打上 1.定义注解
  • tengdazhang770960436
  • tengdazhang770960436
  • 2014年07月16日 22:33
  • 9325

Java自定义注解和运行时靠反射获取注解

java自定义注解 Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。 注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。包含在 jav...
  • bao19901210
  • bao19901210
  • 2013年12月08日 16:05
  • 130339

深入理解Java:注解(Annotation)自定义注解入门

原文:http://www.cnblogs.com/peida/archive/2013/04/24/3036689.html        要深入学习注解,我们就必须能定义自己的注解,并使用注...
  • erlian1992
  • erlian1992
  • 2016年11月29日 23:57
  • 2127

详解Java注解教程及自定义注解

自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分。开发过程中,我们也时常在应用代码中会看到诸如@Override,@Deprecated这样的注解。这篇文章中,我将向大家讲述...
  • zhushuai1221
  • zhushuai1221
  • 2016年08月11日 12:58
  • 1410

Java注解(三) 自定义注解与提取注解

自定义注解跟提取注解 自定义注解主要讲解如何自定义跟在自定义中应该注意的问题。 提取注解主要讲的是如何通过反射机制结合AnnotatedElement获取注解相关的信息...
  • ljYangscut
  • ljYangscut
  • 2016年05月01日 16:58
  • 16035

java自定义注解简单小例子

/** * 定义一个注解 */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented public...
  • icehaopan
  • icehaopan
  • 2015年12月11日 22:59
  • 12940

Java自定义注解 和 springMVC拦截器 配合使用记录系统操作日志的案例

自定义注解的用法, 好多人不知道, 在这里, 代码的注释中, 我已经详细的介绍了, 另外就是很多人不知道自定义注解如何使用, 这里配合springMVC拦截器, 做一个非常实用的案例. 案例: 记...
  • qq_35843124
  • qq_35843124
  • 2017年05月26日 16:01
  • 2451

java注解:如何实现和使用一个自定义注解?

java中注解在java中的应用非常广泛,如override、supperwarning等等注解,框架中的注解应用更为广泛,主流框架基本都有自己的注解体系,今天想总结和学习一下注解的相关知识,第一篇将...
  • wangpengzhi19891223
  • wangpengzhi19891223
  • 2017年09月29日 10:10
  • 749
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java中自定义注解的作用和写法
举报原因:
原因补充:

(最多只允许输入30个字)