Wenn eine Klasse mit einer Anmerkung bezeichnet ist, wird die Definition dieser Anmerkung hat in dem Runtime-Classpath sein, um die Klasse zu bedienen? Zum Beispiel kann die AnmerkungSind Annotationsklassendateien im Laufzeitklassenpfad erforderlich?
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 {}
kann ich das Programm
@Component
public class Test {
public static void main(String[] args) {
System.out.println("It worked!");
}
}
ohne Component.class im Classpath ausführen gegeben? (In meinem Test könnte ich, aber ist dieses Verhalten durch die Spezifikation definiert?)
Ich frage, da gibt es conflicting claims ob die Verwendung einer Anmerkung aus einer Bibliothek eine Abhängigkeit von dieser Bibliothek erstellt.
Verwandte Links: http://mail.openjdk.java.net/pipermail/type-annotations-dev/2011-November/000079.html, https://bugs.eclipse.org/bugs /show_bug.cgi?id=366063 (für zukünftige schnelle Referenz) – Jayan
Mögliche dup: http://stackoverflow.com/questions/3567413/why-doesnt-a-missing-annotation-cause-a-classnotfoundexception-at-runtime –
Danke Matt, genau das habe ich gesucht. – meriton