Вы не можете в общем приводить java String
s к любому виду POJO. Вы должны определить, как строки «разбираются» на объекты. Если вам нужен обобщенный список c, вам необходим метод синтаксического анализа generi c. Я бы предложил следующее:
public static <T> List<T> splitParseToList(String input, String delimiter, Function<String, T> parser) {
String[] segments = StringUtils.split(input, delimiter);
List<T> result = new ArrayList<>();
for (String segment : segments) {
String unparsed = StringUtils.strip(segment);
// This is the step you missed (The conversion from String to 'actual' object):
T value = parser.apply(unparsed);
result.add(value);
}
return result;
}
Это позволяет вам указать функцию синтаксического анализа для преобразования строк во что-то еще:
String test = "1, 2, 4, 8";
List<Integer> list = splitParseToList(test, ",", Integer::parseInt);
System.out.println(list);
Я использовал apache StringUtils
здесь. Это открытый исходный код.
Имейте в виду, что этот метод не устойчив к «плохому вводу». Я оставлю это на ваше усмотрение, чтобы обеспечить обработку ввода по вашему желанию.