Решение для динамического типа переменной в Java

#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;
}