【问题标题】:why are classes declared as final in apache commons csv library为什么类在 apache commons csv 库中声明为 final
【发布时间】:2015-11-01 16:11:50
【问题描述】:

Apache commons CSV Parser 类抛出异常

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

伪代码

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

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

例如,字符串可以是 a1,b1,c1,d1,e1,f1\na,b,"csdsds,,因为您会看到第二行中缺少右引号。

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

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

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

【问题讨论】:

    标签: java csv apache-commons-csv


    【解决方案1】:

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

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

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

    【讨论】:

    • 说的太有道理了,感谢推荐通用开发者邮件,我在哪里可以找到?
    猜你喜欢
    • 2011-01-29
    • 2015-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 2011-10-02
    相关资源
    最近更新 更多