当使用带注释的 opencsv 和 StatefulBeanToCsv 时,当 bean 列表为空时,不会写入标头。我认为这个测试会成功,但事实并非如此。
private class bean1 {
@CsvBindByName(column = "column1")
private String col1;
public String getCol1() {
return col1;
}
public void setCol1(String col1) {
this.col1 = col1;
}
}
@Test
public void testOpenCsvEmptyBeanList() throws CsvException {
StringWriter sw = new StringWriter();
StatefulBeanToCsv<bean1> sbc = new StatefulBeanToCsvBuilder<bean1>(sw)
.withLineEnd(CSVWriter.DEFAULT_LINE_END)
.build();
// empty bean list
sbc.write(new ArrayList<>());
assertEquals("column1" + CSVWriter.DEFAULT_LINE_END, sw.toString());
}
Run Code Online (Sandbox Code Playgroud)
有什么想法可以让这个测试有效吗?
我真的怀疑这是否可能。查看 的代码StatefulBeanToCsv,如果列表为空,则不会写入任何内容。
public void write(List<T> beans) throws CsvDataTypeMismatchException, CsvRequiredFieldEmptyException {
if (CollectionUtils.isNotEmpty(beans)) {
write(beans.iterator());
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
751 次 |
| 最近记录: |