Определил абстрактный класс:
@Data
public abstract class Parameter {
private Long id;
private String title;
private boolean cumulative;
}
Создал на его основе дочерний:
@Data
public class ParameterDTO extends Parameter {
private GroupParametersDTO group;
}
Пытаюсь переменной с типом List<Parameter>
присвоить значение с типом List<ParameterDTO>
выдает ошибку:
Incompatible types
Required: List<Parameter>
Found: List<ParameterDTO>
Я думал, что вместо суперкласса можно использовать дочерний(полиморфизм)? Или я что-то не правильно понял?
P.S. Вообще задача в следующем: метод контроллера в Spring в зависимости от переденных в запросе к серверу параметров, должен возвращать разные объекты(а точнее ResponseEntity < List < ? > >). Где вместо ? надо указать возвращаемый тип. Поэтому я хотел сделать суперкласс от него реализовать все возможные в этом методе классы и уже вместо ? указать супер класс, а возвращать уже дочерние классы.
Подскажите, как правильно решается такая задача. Когда заранее не известно, какой тип объекта должен вернуть метод контроллера?
Так должно работать:
List<? extends Parameter> list = new ArrayList<ParameterDTO>()
Таким образом ты явно задаёшь требование что твой женерик допускает наследников. Иначе работать не будет. Джава это строго типизированный язык, поэтому с очевидностью здесь строго.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Создаю приложение на микросервисной архитектуре с использованием Spring Boot, Spring CloudКак пример я смотрю вот этот репозиторий
Необходимо по таймеру увеличивать и уменьшать сферу например за 5 секунд увеличить и за 5 секунд уменьшить, этот код работает, ну я не знаю...
Есть старый проект(xul, tomcat 5, jdk 15, hibernate, firebird и т
У меня есть предложение, мне нужно его разделить на слова вот таким образом и раскидать по ячейкам массиваЯ пробовала сначала split, но оказалось,...