import java.util.*; | |
abstract class A { | |
static <T> void foo(List<T> x) { } | |
static <T extends List<?>> void foo(Collection<T> x) { } | |
public static void main(String[] args){ | |
List<List<String>> x = null; | |
foo<error descr="Ambiguous method call: both 'A.foo(List<List<String>>)' and 'A.foo(Collection<List<String>>)' match">(x)</error>; | |
foo<error descr="Ambiguous method call: both 'A.foo(List<Object>)' and 'A.foo(Collection<List<?>>)' match">(null)</error>; | |
} | |
} |