--- /dev/null
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+
+public aspect Wibble {
+
+ declare @field: (@III *) Song.*: @Foo;
+
+ before(): get((@III *) Song.*) {
+ System.out.println();
+ }
+ public static void main(String []argv) throws Exception {
+ System.out.println(Song.class.getDeclaredField("i").getAnnotation(Foo.class));
+ }
+}
+
+@III
+class XX {
+
+}
+class Song {
+
+ XX i;
+
+ void foo() {
+ System.out.println(i);
+ }
+}
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface III {}
+@Retention(RetentionPolicy.RUNTIME)
+@interface Foo {}