rot*_*art 8 java javabeans opencsv
我正在尝试使用 openCSV 4.1 从 bean 列表中编写 CSV。但是,每当我运行程序时,我都会收到 CsvBeanIntrospectionException,然后收到 NoSuchMethodException: Unknown property 'fieldx' on class 'class TestObject'
我已成功使用读取器对应项将 CSV 读取到 bean 列表。
这是我的对象“TestObject”的代码:
import com.opencsv.bean.CsvBindByName;
import java.io.Serializable;
public class TestObject implements Serializable {
@CsvBindByName
int fieldx;
@CsvBindByName
int fieldy;
public TestObject() {
}
public TestObject(int x, int y) {
this.fieldx = x;
this.fieldy = y;
}
public int getX() {
return fieldx;
}
public int getY() {
return fieldy;
}
public void setX(int x) {
this.fieldx = x;
}
public void setY(int y) {
this.fieldy = y;
}
@Override
public String toString(){
return "{" + fieldx + "," + fieldy + "}";
}
}
Run Code Online (Sandbox Code Playgroud)
剩下的就是这样了。
public class Project {
public static void main(String[] args) {
TestObject t1 = new TestObject(1,2);
TestObject t2 = new TestObject(3,4);
List<TestObject> testList = new ArrayList<>();
testList.add(t1);
testList.add(t2);
Prep prep = new Prep();
try {
prep.writeCSV(testList);
} catch (IOException | CsvDataTypeMismatchException | CsvRequiredFieldEmptyException ex) {
ex.printStackTrace();
}
}
}
import com.opencsv.bean.*;
import com.opencsv.exceptions.CsvDataTypeMismatchException;
import com.opencsv.exceptions.CsvRequiredFieldEmptyException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.List;
public class Prep {
public void writeCSV(List<TestObject> t) throws IOException,
CsvDataTypeMismatchException,
CsvRequiredFieldEmptyException {
Writer writer = new FileWriter("testfile.csv");
StatefulBeanToCsv beanToCsv = new StatefulBeanToCsvBuilder(writer).build();
beanToCsv.write(t);
writer.close();
}
}
Run Code Online (Sandbox Code Playgroud)
通过排除,我发现 getter 方法的名称必须与属性的名称匹配。通过下面的更正,现在我可以从对象列表写入 CSV。
//...
public int getFieldx() {
return fieldx;
}
public int getFieldy() {
return fieldy;
}
public void setFieldx(int x) {
this.fieldx = x;
}
public void setFieldy(int y) {
this.fieldy = y;
}
//...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10026 次 |
| 最近记录: |