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,我无法扩展它们。我想理解为什么这些类被声明为final?
答案 0 :(得分:3)
但是,问题是,这些类被声明为final,而我不能 扩展它们。我想了解为什么这些类被声明为 最后?
类是final的主要原因或字段是受限制的可见性,这样Apache可以对类进行内部更改,而不必担心用户扩展或访问这些内部部分。只要课程不是最终的,您就必须将所有protected
字段视为公开的API。
在你的情况下,我会在commons-developer邮件列表中提出问题,看看可以做些什么。 Commons CSV目前正处于快速发展阶段。