1*f1fbf3c2SXin Li package test4; 2*f1fbf3c2SXin Li 3*f1fbf3c2SXin Li public class AnnoArg { 4*f1fbf3c2SXin Li public static @interface AnnoArgAt { value()5*f1fbf3c2SXin Li Class<? extends AnnoArg.A> value(); 6*f1fbf3c2SXin Li } 7*f1fbf3c2SXin Li 8*f1fbf3c2SXin Li public static class A { baz()9*f1fbf3c2SXin Li int baz() { return 1; } 10*f1fbf3c2SXin Li } 11*f1fbf3c2SXin Li 12*f1fbf3c2SXin Li public static class B extends A { baz()13*f1fbf3c2SXin Li int baz() { return 2; } 14*f1fbf3c2SXin Li } 15*f1fbf3c2SXin Li 16*f1fbf3c2SXin Li @AnnoArgAt(B.class) foo(int i)17*f1fbf3c2SXin Li public int foo(int i) { return i; } 18*f1fbf3c2SXin Li } 19