#java #spring #list #generics
#java #spring #Список #обобщения
Вопрос:
Каков наилучший подход к обработке этого сценария. Конструктору вспомогательного метода будут присвоены различные типы в зависимости от методов контроллера, вызывающих вспомогательный метод. Итак, GetMethod вызывает вспомогательный метод и предоставляет аргумент типа typeone. Однако общий тип списка вспомогательного метода выдает ошибку неизвестного класса.
@RequestMapping(value = "/methodOne", method = RequestMethod.GET)
public List<?> getMethodOne(){
return Helper(typeone);
}
@RequestMapping(value = "/methodTwo", method = RequestMethod.GET)
public List<?> getMethodTwo(){
return Helper(typetwo);
}
private List<?> Helper(type){
// type in List<type> - gives unknown class error
new List<type> someObject = new ArrayList<type>();
return someObject;
}
Я попробовал интерфейс IType, который реализован объектами typeone и typetwo, а затем во вспомогательном методе обновил аргумент следующим образом
private List<Itype> Helper(IType type){
new List<type> someObject = new ArrayList<type>();
return someObject;
}
Комментарии:
1. ваш синтаксис универсального конструктора неверен.
Ответ №1:
Это должно быть больше похоже
private <T> List<T> Helper(Clazz<T> clazz){ // if you need that at all here
List<T> someObject = new ArrayList<T>();
return someObject;
}