如果某個類使用註釋進行了註釋,那麼該註釋的定義是否必須位於運行時類路徑中才能使用該類?例如,給定註解運行時類路徑中是否需要註記類文件?
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? (在我的測試中,我可以,但這是行爲定義的行爲?)
我問,因爲有conflicting claims是否使用庫中的註釋創建對該庫的依賴關係。
相關鏈接:http://mail.openjdk.java.net/pipermail/type-annotations-dev/2011-November/000079.html,https://bugs.eclipse.org/bugs /show_bug.cgi?id=366063(供將來快速參考) – Jayan 2012-04-05 17:40:38
可能的複製:http://stackoverflow.com/questions/3567413/why-doesnt-a-missing-annotation-cause-a-classnotfoundexception-at-runtime – 2012-04-05 18:27:05
感謝馬特,那正是我所尋找的。 – meriton 2012-04-05 19:07:09