У меня есть следующий код:
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;
}
}
Это фактически компилируется и работает, как и следовало ожидать. Но если типы возвращаемых данных будут одинаковыми, это не скомпилируется, так как ожидаемое "сочетание имен: метод (пара) и метод (пара) имеют одинаковое стирание"
Учитывая, что возвращаемый тип не является частью сигнатуры метода, как возможна эта перегрузка?