Я использую службу преобразования Spring,и зарегистрировать в нем свой конвертер:
public class MyTypeConverter implements Converter<String, MyType> {
@Override
public Currency convert(String text) {
MyType object = new MyType();
// do some more work here...
return object;
}
}
Теперь в моем приложении я могу сделать преобразование из String
в MyType
, и оно работает хорошо :
@Autowired
private ConversionService cs;
public void doIt() {
MyType object = cs.convert("Value1", MyType.class);
}
. Но я также заметил, например, что я могу использовать тот же преобразователь в своем MVC-контроллере, и он каким-то образом работает и со списками :
@RequestMapping(method = RequestMethod.GET, value = "...")
@ResponseBody
public final String doIt(@RequestParam("param1") List<MyType> objects) throws Exception {
//....
}
. Поэтому, если я отправлю param1=value1,value2
в контроллер, я получу List<MyType>
с двумя элементами. Таким образом, spring разделяет строку запятыми, а затем преобразует каждый элемент отдельно в MyType
. Возможно ли это сделать и программно?
Мне нужно что-то подобное:
List<MyType> objects = cs.convert("Value1,Value2", List<MyType>.class);