package test; public class ReferenceCycleThroughAnnotation { @C(B.class) public class A { public void foo() { } } public class B> { } public @interface C { public Class value(); } }