Java jackson CSV allowComments仅适用于多行消息?

Java jackson CSV allowComments仅适用于多行消息?,java,csv,jackson,comments,jackson-databind,Java,Csv,Jackson,Comments,Jackson Databind,示例1(失败): 最后一行字符串=“#134”; CsvMapper mapper=mapperCSV(); String[]it=mapper.readerFor(String[].class) .with(mapper.schema().withComments()).readValue(行); 例2(成功): 最后一行字符串=“#134”; CsvMapper mapper=mapperCSV(); MappingIterator its=mapper.readerFor(字符串[].c

示例1(失败):

最后一行字符串=“#134”;
CsvMapper mapper=mapperCSV();
String[]it=mapper.readerFor(String[].class)
.with(mapper.schema().withComments()).readValue(行);
例2(成功):

最后一行字符串=“#134”;
CsvMapper mapper=mapperCSV();
MappingIterator its=mapper.readerFor(字符串[].class)
.with(mapper.schema().withComments()).readValues(行);

检查代码后,我发现withComments仅适用于多行消息。这是一个bug还是预期的?

当您创建
MappingIterator
对象时,实际上还没有反序列化任何内容。您需要迭代所有行或使用
its.readAll()
方法来启动反序列化过程

当您使用
readValue
方法时,您只需要一个对象。若不可用,则抛出异常以通知您这是不可能的。它不能只返回
null
,因为这将是一个静默故障,并可能在以后导致
NPE

使用
MappingIterator
则是另一种情况,因为您需要对其进行迭代,并且
API
允许您检查下一个元素。因此,很明显,如果没有元素,我们可以停止迭代

所以,在我看来,这不是一个错误