У меня есть класс Category
, который реализует интерфейс CategoryManager
. Далее идет Card
, который поддерживает List<Category>
.
Теперь я хотел бы вернуть этот список, но с категориями как CategoryManager
, следовательно, List<CategoryManager>
. Причина, по которой я это делаю, заключается в том, что «открытый интерфейс» Category
крайне уродлив, и я хотел бы сузить его, показав внешнему пользователю только чистую CategoryManager
.
Как мне это сделать?
Я придумал следующий метод:
public <T extends CategoryManager> List<T> getAllCategories() {
return (List<T>) categories; //with categories beeing List<Category>
}
Это работает, но я нахожу это довольно уродливым, потому что я забрасываю сюда и возвращаю List<T>
, теряя таким образом информацию и ... Ну, я думаю, вы заметите, что это не красиво по разным причинам.
Может кто-нибудь прийти с лучшим / хорошим решением?
С уважением: -)