public class CsvHandler {
public List<Map<String, String>> readCsv(String filePath) {
}
public void writeCsv(List<Map<String, String>> data, String filePath) {
}
public List<Object> convertToObjects(List<Map<String, String>> data, Class<?> clazz) {
}
public List<Map<String, String>> convertToMapList(List<Object> objects) {
}
}
public interface CsvConverter {
List<Object> convertToObjects(List<Map<String, String>> data, Class<?> clazz);
List<Map<String, String>> convertToMapList(List<Object> objects);
}
public interface CsvWriter {
void writeCsv(List<Map<String, String>> data, String filePath);
}
public class MyCsvConverter implements CsvConverter {
@Override
public List<Object> convertToObjects(List<Map<String, String>> data, Class<?> clazz) {
}
@Override
public List<Map<String, String>> convertToMapList(List<Object> objects) {
}
}
public class MyCsvWriter implements CsvWriter {
@Override
public void writeCsv(List<Map<String, String>> data, String filePath) {
}
}
public class Main {
public static void main(String[] args) {
CsvHandler csvHandler = new CsvHandler();
CsvConverter csvConverter = new MyCsvConverter();
CsvWriter csvWriter = new MyCsvWriter();
List<Map<String, String>> csvData = csvHandler.readCsv("data.csv");
List<Object> objects = csvConverter.convertToObjects(csvData, MyClass.class);
List<Map<String, String>> newData = csvConverter.convertToMapList(objects);
csvWriter.writeCsv(newData, "new_data.csv");
}
}