Итак, короткий ответ: поскольку вы строго ввели «Пара», чтобы обозначить две разные вещи, «Дженерики» не играют, а просто вводят правило.

я есть следующий код:

public class Pair< T, U > {
    public T first;
    public U second;
}
public class Test {
    public int method( Pair< Integer, Integer > pair ) {
        return 0;
    }
    public double method( Pair< Double, Double > pair ) {
        return 1.0;
    }
}

Это на самом деле компилируется и работает, как и следовало ожидать. Но если возвращаемые типы сделаны одинаковыми, это не скомпилируется, так как ожидаемое «name clash: method (Pair) и method (Pair) имеют одинаковое стирание»

Учитывая, что возвращаемый тип не является частью сигнатуры метода, как возможна эта перегрузка?

Ответы на вопрос(4)

Ваш ответ на вопрос