私の宿題は、基本的にセットのメソッドを書き直して、Square
という作成したカスタムクラスで使用できました。私はエラーを取得しておいてください。セットは同じ消去を持っていますが、どちらも他のエラーを無効にしません
error: name clash: removeAll(Collection<Square>) in SquareSet and removeAll(Collection<?>) in Set have the same erasure, yet neither overrides the other
public boolean removeAll(Collection<Square> objects) {
私は私のコードとクラスSquareSet
実装Set<Square>
の先頭にSet
とCollection
の両方を輸入しました。
public boolean removeAll(Collection<Square> objects) {
Square[] newSet;
int count = 0;
for(Square each : objects) {
count -= 1;
newSet = new Square[(daSet.length)-count];
for (int i = 0; i < daSet.length; i++) {
if (daSet[i].equals(each)) {
if(i == 0) {
for (int j = 1; j < daSet.length ; j++) {
newSet[j - 1] = daSet[j];
}
} else if (i == ((daSet.length) - 1)) {
for (int j = 0; j < daSet.length ; j++) {
newSet[j] = daSet[j];
}
} else {
for (int j = 0; j < i; j++) {
newSet[j] = daSet[j];
}
for (int j = i; j < newSet.length; j++){
newSet[j] = daSet[j+1];
}
}
}
}
}
パラメータが上書きされている場合、パラメータが上書きされる代わりに、メソッドがオーバーロードされるのではないことを理解しています。しかし、私はまだこのエラーが出ている理由を理解していません。