如果一个类被注解,那么该注解的定义是否必须在运行时类路径中才能使用该类?例如,给定注释
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Retention;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Component {}
我可以执行程序吗
@Component
public class Test {
public static void main(String[] args) {
System.out.println("It worked!");
}
}
类路径中没有 Component.class?(在我的测试中我可以,但是这种行为是由规范定义的吗?)
我问是因为存在冲突的声明,是否使用库中的注释会创建对该库的依赖。