Я не могу дать личный ответ, чтобы решить его, не видя больше вашей кодовой базы, но фактическая проблема очевидна.
Ответ - это класс с универсальным типом.https://www.baeldung.com/java-generics
Перед прочтением этой статьи, как правило, полезно иметь java, и остальная часть этого ответа не имеет смысла без нее.
T ничего не расширяетпо умолчанию расширяет объект.Вот почему, если вы делаете ArrayList myList
, это эквивалентно ArrayList<Object> myList
.Если вы можете изменить Response, вы можете обновить универсальный на <T extends Entity>
, и он будет работать.Это предполагает, что каждый универсальный объект T будет своего рода объектом сущности.
Проблема в том, что в какой-то момент вашей программы вы теряете специфику того, чем является этот объект, учтите это.
Response r = new Response();
List<Response<Entity>> list = r.getResponses();
Проблема с этим кодом заключается в том, что вы ожидаете ответа, но, поскольку тип не был указан, по умолчанию он равен Response<Object> r = new Response()
.и хотя технически он может возвращать Response изнутри, компилятор не знает этого наверняка.