クラスにアノテーションが付けられている場合、クラスを使用するには、そのアノテーションの定義をランタイムクラスパスに含める必要がありますか?たとえば、注釈が与えられます
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がない場合は?(私のテストでは可能でしたが、この動作は仕様によって定義されていますか?)
ライブラリからの注釈を使用すると、そのライブラリへの依存関係が作成されるかどうかについて、矛盾する主張があるので、私は尋ねます。