Как парсить объект типа Map из csv?
Я работаю над записью и чтением классов в CSV-файл. Один из классов имеет поле Map. (Я пытаюсь ввести в заказ значения блюд, которые заказал клиент)
public class Order {
...
private long id;
private double totalCost;
private Map<FoodItem, Long> menu;
...
}
Cейчас мой конвертер CSV to / from выглядит следующим образом:
public class OrderConverterCSV implements Converter<Order> {
@Override
public String[] toCsv(Order order) {
return new String[]{
String.valueOf(order.getId()),
String.valueOf(order.getTotalCost()),
String.valueOf(order.getMenu())
};
}
@Override
public Order fromCsv(String[] csvData) {
return new Order(
Long.parseLong(csvData[0]),
Double.parseDouble(csvData[4]),
Map.(csvData[5])//???
);
}
- Как правильно парсить это поле?
- Как я могу позже указать, какое значение блюда сохранить при сохранении в CSV?
- И наконец, может быть, я зря использую Map и должен использовать список или массив?
Ответы (1 шт):
Автор решения: Олексій Моренець
→ Ссылка
@Override
public Order fromCsv(String[] csvData) {
Map<Integer, String> map = new HashMap<>();
// заполняем map
// map.put(someKey, csvData[5]);
return new Order(
Long.parseLong(csvData[0]),
Double.parseDouble(csvData[4]),
map
);
}