Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过CSV文件的Java Setters_Java_Getter Setter_Opencsv - Fatal编程技术网

通过CSV文件的Java Setters

通过CSV文件的Java Setters,java,getter-setter,opencsv,Java,Getter Setter,Opencsv,我有一个带有setter和getter的类文件 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 setAbcDa

我有一个带有setter和getter的类文件

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文件并通过setters实例化变量。我可以使用CSVReader、Univocity、openCSV等读取CSV文件


如何将其与setter类进行比较并设置值?

如果您的问题只是匹配,您可以通过以下方法解决:

Reader in=newfilereader(“path/to/file.csv”);
Iterable records=CSVFormat.EXCEL.parse(in);
用于(CSVRecord记录:记录){
字符串金额=记录。获取(“金额”);
字符串abcDate=record.get(“abcDate”);
MyDto dto=new MyDto()//在此处使用您的类名
dto.设定金额(金额);
dto.setAbcDate(abcDate);
//继续处理对象->存储到集合等
}

反射显然会起作用——尽管我不愿意将其称为传统意义上的CSV文件;它们通常是面向行的,而你有一种混合的。你能描述一下你到底有什么,你想实现什么?现在,看起来您想要创建对象并设置正确的解析值…@nazar_art,对象已经存在。它只是设置对象的值。我发现很棘手的是匹配。
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
}