Warum ist es nicht zulässig, die folgenden zwei Methoden in derselben Klasse zu haben?
class Test{
void add(Set<Integer> ii){}
void add(Set<String> ss){}
}
Ich bekomme die compilation error
Die Methode add(Set) hat die gleiche Löschung add(Set) wie eine andere Methode des Typs Test.
Ich kann das zwar umgehen, aber ich habe mich gefragt, warum javac das nicht mag.
Ich kann mir vorstellen, dass die Logik dieser beiden Methoden in vielen Fällen sehr ähnlich ist und durch eine einzige Methode ersetzt werden könnte
public void add(Set<?> set){}
Methode, aber das ist nicht immer der Fall.
Dies ist besonders ärgerlich, wenn Sie zwei Personen haben möchten. constructors
die diese Argumente aufnimmt, denn dann kann man nicht einfach den Namen einer der constructors
.