美文网首页
java注解浅析

java注解浅析

作者: sungentim | 来源:发表于2017-03-22 19:54 被阅读0次

自定义注解的定义方式 

public @interface Class Preamble

一般来说,定义注解需要指定这个注解生效的范围和作用的对象,所以在设计API的人员就设计了几个meta-annotation,官方的定义是这样解释的:作用于其他注解的注解 ( Annotations That Apply to Other Annotations),分别有下面的几个(下面列举几个常用的)

@Retention:存储策略,就是作用范围,指定该注解的有效范围

                      RetentionPolicy.SOURCE 只在源代码生效,会被编译器忽略 

                     RetentionPolicy.CLASS 只在编译器生效,会在运行时被忽略

                     RetentionPolicy.RUNTIME  在运行时会生效

@Documented:是不是生成文档

@Target:作用对象          

                  ElementType.ANNOTATION :注解 (@target 就是这类的)  

                 ElementType.CONSTRUCTOR:构造方法

                 ElementType.FIELD:字段

                 ElementType.LOCAL_VARIABLE:本地变量

                 ElementType.METHOD:方法

                 ElementType.PACKAGE:包

                 ElementType.PARAMETER:参数

                 ElementType.TYPE :类

举例说明:

定义:

@Documented

@Retention(CLASS)

@Target(TYPE)

public@interfaceClassPreamble{

String auther();

String date();

intcurrentVersion()default1;

String lastModified()default"N/A";

String lastModifyBy()default"N/A";

//note use of array

String[] reviewers();

}

使用:

@ClassPreamble(

auther="tim",

date ="3/22/2017",

currentVersion = 1,

lastModified ="tim",

lastModifyBy ="tim",

reviewers = {"Alice","Bob","Cindy"}

)

public class Test{}

相关文章

网友评论

      本文标题:java注解浅析

      本文链接:https://www.haomeiwen.com/subject/zrtanttx.html