Java的注解是Java中非常好用的一个功能点。基本所有的java框架都会用到。在我们日常的工作中,如果善于使用自定义注解,讲给我们节省下大量的时间。
代码示例:
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Documented
@Target(ElementType.METHOD)
@Inherited
@Retention(RetentionPolicy.RUNTIME)
public @interface MyDemo{
String author() default ‘yunsheng’;
}
对自定义注解进行注解的称为元注解。常用的元注解有四类:
@Documented :表明此注解会被javadoc等类似工具识别,并保留在API文档中。
@Target:声明这个注解可使用的范围。可以打开ElementType看下,分别是:1)类,接口,注解,enum; 2)属性域;3)方法;4)参数;5)构造函数;6)局部变量;7)注解类型;8)包
@Inherited:继承。是说如果你在父类上使用了被@Inherited注解的注解A。那么该类的子类也会继承该注解A。
@Retention:注解的存在范围。
有三个范围:
RetentionPolicy.SOURCE 只存在源码级别,被编译器抛弃(@Override就是此类);
RetentionPolicy.CLASS 会被编译器保留在编译后的类文件中,但是会被虚拟机丢弃;
RetentionPolicy.RUNTIME 保留在运行时,可以被反射读取。这个注解还是比较重要的,我们一般是会使用RUNTIME级别,因为我们需要通过反射读取到这个注解。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)