Overload: why List<String> and List<Integer> make ambiguous declaration? [duplicate]
问题 This question already has answers here : Method has the same erasure as another method in type (7 answers) Closed 3 years ago . Why doesn't this compile? I want to know the underlying reason. If List<String> is not the same type as List<Integer> why public String convert(List<String> strings) { return null; } and public String convert(List<Integer> strings) { return null; } make an ambiguous declaration? public class Converter { public void why() { List<String> strings = null; List<Integer>