通过CSV文件的Java Setters
我有一个带有setter和getter的类文件通过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
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
}