关于作者:
贾帅
博客:https://shuaijia.github.io/
github:https://github.com/shuaijia
csdn:http://blog.csdn.net/jiashuai94
一、简介
注解是Java 1.5引入的,可以提供代码的额外信息,目前正在被广泛应用。除了Java内置注解,我们也可以自定义注解。
以下就是一个自定义注解的简单例子:
自定义注解关键点:
@interface关键字定义注解
注解可以被其它注解修饰,最重要的就是元注解
注解和接口类似,内部可以定义常量和方法
注解定义的方法有一些限制:方法不能有参数;返回值只能是基本类型、字符串、Class、枚举、注解、及以上类型的数组;可以包含默认值
二、元注解介绍
元注解就是定义注解的注解。
包含@Target、@Retention、@Inherited、@Documented这四种
1、@Target
描述注解的使用目标。
其源码为:
注解方法返回值是ElementType[],ElementType枚举类型,枚举值就是@Target注解的可取值。
方法名value,这样在使用注解时,可以不需要指定方法名。
可取的值有:
2、@Retention
注意:默认可以作用于以上任何目标。
描述注解的生命周期。
其源码为:
注解方法返回值是枚举类型RetentionPolicy,枚举值就是@Retention注解的可取值。
可取的值有:
3、@Documented
默认RetentionPolicy.CLASS 值。
描述注解可以文档化,是一个标记注解。
在生成javadoc的时候,是不包含注释的,但是如果注解被@Documented修饰,则生成的文档就包含该注解。
其源码为:
4、@Inherited
标记注解,使用@Inherited修饰的注解作用于一个类,则该注解将被用于该类的子类。
其源码为:
三、自定义注解示例1、定义注解
其中:定义了三个方法,三个方法都有默认返回值。定义了Color枚举(因为注解的方法可以返回枚举类型)
这里注意:
value方法:使用注解时可直接传参,如 @JsAnnotation("msg")
普通方法:使用注解时,如 @JsAnnotation(color=Color.BLUE)
2、使用注解
或
或
3、获取注解
领取专属 10元无门槛券
私享最新 技术干货