У меня есть класс Item , который будет использоваться в качестве универсального типа в следующем классе:
abstract class AbstractClass<I extends Item, V extends AbstractClass.Inner> {
abstract class Inner {
I item;
}
}
Затем я подкласс AbstractClass , также его Внутренний с Страница расширение Элемент , упомянутый выше:
class ImpClass extends AbstractClass<Page, ImpClass.Inner> {
class Inner extends AbstractClass.Inner {
void method(){
// Setup item
// Printout class of item, which is Page
item.callMethodOfPage(); // won't compile without conversion to Page
}
}
}
Теоретически, элемент в ImpClass.Inner должно быть Page и имеет метод только в Page .Это потому, что я что-то упускаю?