interface I { void foo(int x); } public class X { public static void main(String [] args) { I i = @Marker Y. @Marker Z @Marker [] [] @Marker [] ::foo; I i2 = @Value("Joe") Y. @Value2(@Value("Joe")) @Marker Z @Marker [] [] @Marker [] ::foo; I i3 = @Value("Duo") Y. @Value2(@Value("Joe")) @Marker Z ::foo; i.foo(10); Zork z; } } class Y { static class Z { public static void foo(int x) { System.out.println(x); } } }