注解在反射机制中被大量的使用,可以方便我们使用反射机制来确定一个目标
注解在框架中也被大量的使用
注解也是可以被注解的,通过java的内置注解:@Target标注,用于指定当前注解可以在什么地方被使用
常用的:
ElementType.TYPE:在类上可以使用当前注解
ElementType.FIELD:在属性上可以用当前注解
ElementType.CONSTRUCTOR:在构造方法上可以使用当前注解
ElementType.METHOD:在方法上可以使用当前注解
ElementType.PACKAGE:可以在包上使用当前注解
如果注解没有使用@Target注解标注的话则默认该注解可以在任何地方使用
如果希望可以在多个但不是全部地方同时使用时:
@Target({ElemenTupe.TYPE,ElemenTupe.METHOD,.....})将以数组的形式的形式包含可以指定的位置并传入@Target
@Retention注解也是java的内置注解其作用是标注当前注解的保留级别,三个选项:
RetentionPolicy.CLASS:当前注解保留在编译后的字节码文件中,但不可被反射机制操作
RetentionPolicy.SOURCE:当前注解仅保留在源代码中
RetentionPolicy.RUNTIME:当前注解保留在编译后的字节码文件中,可被反射机制操作
如果@Retention不注定的话默认为CLASS
就本人的理解来看的话注解的作用就类似于标签,当贴上对应的标签的时候就可以快速的知道该被标签的对象属于什么内容,和反射机制一同使用可以快速的对对象进行相对于的操作
当被某注解注解了之后,遍历或者查找起来也就相对快速与方便了