java自定义注解入门(1)

来源:互联网 发布:监控平台的端口号 编辑:程序博客网 时间:2024/05/19 18:16

注解入门之元注解


J2SE5.0版本在 java.lang.annotation提供了四种元注解,专门注解其他的注解:

   @Documented –注解是否将包含在JavaDoc中 

   @Retention –注解作用周期 

   @Target –注解作用域 

   @Inherited – 是否允许子类继承该注解

一、 @Documented 

指示某一类型的注释将通过 javadoc 和类似的默认工具进行文档化。应使用此类型来注释这些类型的声明:其注释会影响由其客户端注释的元素的使用。如果类型声明是用 Documented 来注释的,则其注释将成为注释元素的公共 API 的一部分

二、 @Retention指示注释类型的注释要保留多久。

eg:@Retention(RetentionPolicy.RUNTIME)

参数:

  1.SOURCE:在源文件中有效(即源文件保留)

2.CLASS:在class文件中有效(即class保留)

3.RUNTIME:在运行时有效(即运行时保留)

三、@Target注解作用域

eg:@Target(ElementType.METHOD)

参数:

   1.CONSTRUCTOR:用于描述构造器

   2.FIELD:用于描述域

   3.LOCAL_VARIABLE:用于描述局部变量

   4.METHOD:用于描述方法

   5.PACKAGE:用于描述包

   6.PARAMETER:用于描述参数

   7.TYPE:用于描述类、接口(包括注解类型) 或enum声明

四、@Inherited指示注释类型被自动继承

API解释:如果在注释类型声明中存在 Inherited 元注释,并且用户在某一类声明中查询该注释类型,同时该类声明中没有此类型的注释,则将在该类的超类中自动查询该注释类型。此过程会重复进行,直到找到此类型的注释或到达了该类层次结构的顶层 (Object) 为止。如果没有超类具有该类型的注释,则查询将指示当前类没有这样的注释。

/*------------注解-----------------*///成员变量注解@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)@Documented@interface checkValues {public int sizeMin();public int sizeMax();}//方法类型注解@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documented@interface setValues {public String value();}





0 1