注解用于定义一个标示,可以在源文件或者运行时通过反射拿到注解,根据注解的含义去做一些自定义配置或者验证等。
使用@interface定义,使用内置注解进行修饰之后才能正常使用。
@Retention注解定义注解的生命周期。有以下参数:
RetentionPolicy.RUNTIME,RetentionPolicy.CLASS,RetentionPolicy.SOURCE
@Target注解定义注解的使用位置。有以下参数:ElementType.ANNOTION_TYPE, ElementType.CONSTRUCTOR, ElementType.FIELD,ElementType.LOCAL_VARIABLE, ElementType.METHOD, ElementType.PACKAGE, ElementType.PARAMETER, ElementType.TYPE
其中ElementType.TYPE表示注解可以用在一个类,接口,枚举或者注解类型上。
@Inherited注解标示一个类上的注解可以被它的子类继承。
注解的使用
在运行时可以通过Java反射访问类,方法,方法参数,字段的注解。
获取类上修饰的注解
TheClass.class.getAnnotation(MyAnnotation.class)
获取方法上修饰的注解
method.getAnnotation(MyAnnotation.class)
获取修饰方法参数的注解
method.getParameterAnnotations()
method.getParameterTypes()
获取字段的注解
field.getAnnotation(MyAnnotation.class)
一般使用注解来验证用户输入的有效性。
网友评论