Почему я не могу использовать аргумент типа в параметре типа с несколькими границами?

Итак, я понимаютот следующее не делаетне работает, ноЗачем Безразлично»это работает?

interface Adapter {}

class Adaptulator {
     void add(Class extl, Class<a> intl) {
        addAdapterFactory(new AdapterFactory(extl, intl));
    }
}
</a>

add() метод дает мне ошибку компиляции "Невозможно указать какой-либо дополнительный связанный адаптер <E> когда первая граница является параметром типа (в Eclipse) или "Параметр типа не может сопровождаться другими границами " (в идее), выберите.

Ясно, что тыпросто не разрешено использовать параметр типаI там, до&и этос этим. (И прежде чем вы спросите, это нене работает, если вы переключаетесьпотому чтонет никакой гарантии, чтоI ISN»т конкретный класс.) Но почему бы и нет? Я'просмотрела Анжелику Лангерс FAQ и можетне могу найти ответ.

Как правило, когда некоторые ограничения дженериков кажутся произвольными,потому что тымы создали ситуацию, когда система типов можетна самом деле обеспечить правильность. Но я нене вижу, какой случай сломает то, что яЯ пытаюсь сделать здесь. Я'Можно сказать, что это как-то связано с диспетчеризацией метода после стирания типа, нотолько одинadd() метод, так оно и естьтам не таккакая-то двусмысленность ...

Может кто-нибудь продемонстрировать мне проблему?

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

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