interface I { void m(); } interface I1 { int m(); } interface I2 { String m(); } interface I3 { A m(); } class AmbiguityRawGenerics { void foo(I s) { } void foo(I1 s) { } void foo(I2 s) { } void foo(I3 s) { } void bar() { foo(()-> { throw new RuntimeException(); }); } }