Есть ли лучший способ объявить общий контейнер контейнеров?JAVA

Программисты JAVA общаются здесь
Anonymous
Есть ли лучший способ объявить общий контейнер контейнеров?

Сообщение Anonymous »

Я определяю набор классов, которые работают со страницами элементов и объектами-оболочками, содержащими эти страницы. Эти «конверты» по сути являются типовыми телами реагирования служб. Объявление универсальных классов для этих концепций было простой задачей, но после определения конкретных типов для ответов с разбивкой на страницы я получил объявления, которые кажутся избыточными.
Упрощенный пример кода:

Код: Выделить всё

class PagedResponse {
public T data;
public List getItems() {
return this.data.getItems();
}
}

abstract class Page {
public abstract List getItems();
}

class ConcreteItem {
/* data & code */
}

class ConcreteItemPage extends Page {
public List getItems() {
/* ... */
}
}

void loadConcreteItemPage() {
PagedResponse response = /* call service, get response body */;
List itemsInPage = response.getItems();
/* iterate through items */
}
Под «избыточным» я подразумеваю объявление переменной ответа, которую необходимо параметризовать с помощью ConcreteItem, хотя параметр типа ItemPage имеет значение уже параметризован тем же типом ConcreteItem. Кажется, объявление должно быть просто таким...

Код: Выделить всё

PagedResponse response = /* call service, get response body */;
List itemsInPage = response.getItems();
...но я не знаю, как это сделать в системе типов Java и возможно ли это вообще. Спасибо!


Подробнее здесь: https://stackoverflow.com/questions/787 ... containers

Вернуться в «JAVA»