Нужны ли файлы классов аннотаций в пути к классам среды выполнения?

Если класс снабжен аннотацией, должно ли определение этой аннотации находиться в пути к классам во время выполнения, чтобы можно было использовать класс? Например, учитывая аннотацию

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 в пути к классам? (В моем тесте я мог бы, но определено ли это поведение спецификацией?)

Я спрашиваю, поскольку существуют конфликтующие утверждения, создает ли использование аннотации из библиотеки зависимость от этой библиотеки.

9
задан Jayan 5 April 2012 в 17:29
поделиться