为什么在同一个类中有以下两个方法是不合法的?
class Test{
void add(Set<Integer> ii){}
void add(Set<String> ss){}
}
我得到编译错误
方法add(Set)与类型Test中的另一个方法具有相同的擦除添加(Set)。
虽然我可以绕过它,但我想知道为什么javac不喜欢这样。
我可以看到,在许多情况下,这两个方法的逻辑非常相似,可以用一个方法来代替
public void add(Set<?> set){}
方法,但情况并非总是如此。
如果你想有两个接受这些参数的构造函数,这是非常烦人的,因为你不能只改变其中一个构造函数的名字。