1

我正在使用单义性解析器来解析 csv 文件。

@NullString(nulls = { "", " " })
@Parsed(
        field = "referenceNumber1",
        defaultNullRead = "NULL")
private String referenceNumber1;

@NullString(nulls = { "", " " })
@Parsed(
        field = "referenceNumber2",
        defaultNullRead = "NULL")
private String referenceNumber2;

第一个条目:“ref1,ref2”

Bean 值:referenceNumber1 = ref1,referenceNumber2 = ref2

第二个条目:“ref1”

Bean 值:referenceNumber1 = ref1,referenceNumber2 = "NULL"

第三个条目:“ref1”

Bean 值:referenceNumber1 = ref1,referenceNumber2 = null

对于第三种情况,我想要 referenceNumber2 = "NULL" 但它是空的。看起来因为在 ref1 单义性之后没有逗号,所以没有应用任何 bean 转换并认为它是文件结尾。有什么办法可以在这里实现“NULL”吗?

4

1 回答 1

1

图书馆的作者在这里。

我同意这是一种奇怪的行为,并在今天打开了这个问题来解决这个问题。

同时,如果您选择解析器设置中的字段,您将获得所需的结果。

s.selectFields("referenceNumber1", "referenceNumber2");

另一种选择是使用默认值声明您的字段:

private String referenceNumber2 = "NULL";

两种解决方案都很糟糕,所以我将尽快修复这个问题并发布 2.7.1 版本。

编辑:它已在今天发布的版本 2.7.1 上得到修复。

于 2018-07-11T07:19:11.307 回答