Java Сеттеры через файл CSV - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть файл класса с сеттерами и геттерами

private double Amount;
private Date abcDate;

public double getAmount() {
    return Amount;
}
public void setAmount(double amount) {
    Amount = amount;
}
public Date getAbcDate() {
    return abcDate;
}
public void setAbcDate(Date abcDate) {
    this.abcDate = abcDate;
}

У меня есть файл CSV с

Amount, 1000
abcDate, 12/03/2018
PersonName, John
PersonLocation, Berlin

Я хотел бы прочитать файл CSV и создать экземпляр переменной с помощью сеттеров , Я могу прочитать файл CSV, используя CSVReader, Univocity, openCSV et c.

Как сравнить его с классом установки и установить значение?

Ответы [ 2 ]

1 голос
/ 06 апреля 2020

Если ваша проблема только с соответствием, вы можете решить ее следующим образом с помощью common-csv liberary :

Reader in = new FileReader("path/to/file.csv");
Iterable<CSVRecord> records = CSVFormat.EXCEL.parse(in);
for (CSVRecord record : records) {
    String amount = record.get("Amount");
    String abcDate = record.get("abcDate");

    MyDto dto = new MyDto() // use your class name here
    dto.setAmount(amount);
    dto.setAbcDate(abcDate);
    // continue to process object -> store to collection, etc
}
0 голосов
/ 06 апреля 2020

Я не вижу проблем со следующим подходом:

YourClass obj = new YourClass();

String line = scanner.nextLine(); // Assume you read the line this way
String [] tokens = line.split(", ");
if(tokens[0].equals("Amount")){
    obj.setAmount(Double.parseDouble(tokens[1]));
} else if(tokens[0].equals("abcDate")) {
    Date date = parse tokens[1] // Your logic to parse the date string into Date
    obj.setAbcDate(date);
}

Не стесняйтесь комментировать в случае сомнений / проблем.

...