Если класс снабжен аннотацией, должно ли определение этой аннотации находиться в пути к классам во время выполнения, чтобы можно было использовать класс? Например, учитывая аннотацию
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 в пути к классам? (В моем тесте я мог бы, но определено ли это поведение спецификацией?)
Я спрашиваю, поскольку существуют конфликтующие утверждения, создает ли использование аннотации из библиотеки зависимость от этой библиотеки.