Я определяю класс:
class Foo<I extends Bar & Comparable<I>> {
}
компилятор жалуется на то, что I
скрыт I
. Я предполагаю, что второй раз, когда I
появляется в определении, скрывает в области видимости первый, как если бы переменная I
могла быть назначена двум различным типам. Как это сделать правильно?
Edit:
это внутренний класс. полный код может быть:
class Baz<I> {
class Foo<I extends Bar & Comparable<I>> {
}
}
Теперь проблема в том, что если я переименую внутренний I
в J
, я не уверен, что I
и J
на самом деле - это те же типы.