@interface Ann { int i (); String[] j(); } class D { int field; final int field1 = 1; @Ann(i=field) void foo () {} @Ann(i=this.field1) void foo1 () {} @Ann(i=field1, j = {}) void foo2 () {} @Ann(j={null}) void bar() {} } @interface ManistaDouble { public abstract double defaultValue() default Double.NaN; }