0

Apache commons CSV Parser 类抛出异常

“在封装令牌完成之前达到 EOF”

对于伪代码

CSVParser csvParser = CSVParser.parse(fileChunkString, CSVFormat.DEFAULT);

错误的原因是我的 CSV 文件被分块解析,即我没有一次传递整个文件内容,而是其中的一部分,并且错误是有道理的,因为不能保证遇到关闭标记

例如,字符串可以是a1,b1,c1,d1,e1,f1\na,b,"csdsds,您在第 2 行中看到的右引号丢失。

我想修改库源代码以记住最后一行并将其与下一个文件内容块合并,例如:下一个块可能是dfdfd",a,c这样我的内容变为a,b,"csdsds,dfdfd",a,c

通过源代码,我看到的第一步是我需要扩展Lexer.java并覆盖该方法,因为这个类抛出了上述 EOF 异常,并且还扩展了 CSVParser.java

但是,问题是这些类被声明为 final,我不能扩展它们。我想了解为什么将这些类声明为最终类?

4

1 回答 1

3

但是,问题是这些类被声明为 final,我不能扩展它们。我想了解为什么将这些类声明为最终类?

类是最终类或字段可见性受限的主要原因是,Apache 可以通过这种方式对类进行内部更改,而无需担心用户扩展或访问这些内部部分。一旦类不是最终的,您就必须将所有protected字段视为公开的 API。

在你的情况下,我会在 commons-developer 邮件列表中提出问题,看看可以做些什么。Commons CSV 目前正在快速发展。

于 2015-11-01T16:37:41.757 回答