Я реализую метод Utility, который принимает параметр String как параметр и преобразовывает объект в общий. Я могу достичь с помощью кода ниже, но слабая точка - . Каждый объект, который должен разбираться, должен иметь конструктор строк. Нет способа определить, что объект должен иметь конструктор String. Есть ли другой лучший способ достичь этого, используя полиморфизм или общий?Общий способ преобразования строки в объект
AAA.java
public class AAA {
private String id;
private String description;
public AAA(String str) {
// Do parsing...
}
метод Utility.
public static <T extends Base> List<T> readFile(File file, Class<T> type) {
List<T> collection = new ArrayList<T>();
// Read file line by line and convert to Instance
Constructor<T> ctor = type.getConstructor(String.class);
T newInstance = ctor.newInstance(line);
if (newInstance != null) {
collection.add(newInstance);
}
return collection;
}
Использование:
List<AAA> list = FileUtil.readFile(file, AAA.class);
В каком формате находится ваша строка? Вернее, ваш файл. Разделяет ли это CSV-запятая или находится в JSON или что-то в этом роде. –
Вы сами решаете формат строки? –
@ DanielvanHeerden это CSV. – swemon