为什么MyAnnotation的定义需要Documented,Inherited,Retention&的RetentionPolicy?

时间:2010-04-01 07:19:39

标签: java annotations

此代码中这些java.lang.annotation导入的目的是什么?他们为什么需要定义MyAnnotation?

import java.lang.annotation.Documented;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface MyAnnotation {
  String value() default "";
}

1 个答案:

答案 0 :(得分:1)

@Documented和@Inherited不是必需的。只有在运行时要处理注释时才需要@Retention(RetentionPolicy.RUNTIME)。