import java.util.List; import java.util.Set; abstract class Overloadsss { abstract <T> List<T> foo(List<T> l); abstract <T> Set<T> foo(Set<T> s); abstract <K> List<K> bar(List<K> l); abstract <K> List<K> bar1(List<K> l); abstract <K> Set<K> bar1(Set<K> s); { List<String> l = foo(bar (null)); List<String> l1 = foo(bar1<error descr="Ambiguous method call: both 'Overloadsss.bar1(List<Object>)' and 'Overloadsss.bar1(Set<Object>)' match">(null)</error>); } }