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