Możemy uciec z tego w .NET:Dlaczego Java nie zezwala na przeciążenia na podstawie parametrów typu?
interface I<A> {}
interface I<A, B> {}
... ale w Javie, ten sam kod spowoduje błąd kompilacji.
To interesujące, biorąc pod uwagę, że nawet jeśli informacje o typie zniknęły w czasie wykonywania, można by oczekiwać, że informacja o numerze parametru typu nadal będzie istniała.
Jeśli to ograniczenie wiąże się z wymazywaniem typu, czy ktoś może wyjaśnić, dlaczego?
Ograniczeniem jest to, że nie można zdefiniować interfejsu więcej niż jeden raz i nie można go przeciążać w ten sposób. W czasie wykonywania, wymazywanie typu zapewniłoby, że zarówno "I" jest faktycznie tym samym typem, który jest niedozwolony, czy technicznie nie zrobiłby tego, co chcesz. –