interface I { Y foo(int x); } public class X { class Z extends Y { public Z(int x) { super(x); System.out.println(); } } public static void main(String[] args) { i = @Marker W<@Marker Integer>::<@Marker String>new; } } class W<T> extends Y { public W(T x) { super(0); System.out.println(x); } } class Y { public Y(int x) { System.out.println(x); } }