【问题标题】:What is the difference between Apache Commons Lang3 vs Apache Commons Text?Apache Commons Lang3 与 Apache Commons Text 有什么区别?
【发布时间】:2018-04-04 05:33:18
【问题描述】:

我想知道 Apache Commons Lang3 (org.apache.commons.lang3) 与 Apache Commons Text (org.apache.commons.text) 有什么区别?

我看到了他们之间的许多相似之处。
例如,他们都有StringEscapeUtils

但我也看到了许多不同之处。
那么我应该使用哪个,Lang3 还是 Text?
或者这两者的常见用例是什么?

【问题讨论】:

  • 阅读您自己链接到的文档。 commons-lang3 版本已被弃用,取而代之的是 commons-text 版本。我想您发现的其他相似之处也会有类似的弃用原因/消息。
  • 简单的建议。避免使用任何已弃用的 API。

标签: java apache-commons apache-commons-lang3


【解决方案1】:

commons-lang3 中的文本工具被标记为弃用,Javadoc 指向 commons-text

【讨论】:

  • 考虑编辑您的答案以解决 OP 的问题,即“我应该使用哪个,Lang3 还是 Text?或者这两个的常见用例是什么?”
【解决方案2】:

嗯,text 方法声明

此代码改编自 Apache Commons Lang 3.5。

看起来他们只是计划将方法从一个库转移到另一个库。您必须让该代码的作者解释原因。

然而,值得指出的是lang3text 的编译依赖,因此如果你包含text,你将有lang3 反正

https://github.com/apache/commons-text/blob/master/pom.xml#L61-L65

【讨论】:

  • "....因此,如果您包含文本,那么无论如何您都会有 lang3"。除非他们决定改变实施!依赖未记录的依赖关系不是一个好主意。
  • 项目服务于不同的目的——一个是另一个的依赖。我没有为 Apache Commons 做贡献,所以我无法回答他们为什么要在项目之间复制代码
  • 既然你问了。它没有记录在 javadocs 中。如果他们重构 text,你认为他们会犹豫从 POM 文件中删除“lang3”依赖吗?他们不太可能考虑需要同时使用这两种 API 的人的“边缘情况”。如果应用程序员确实希望/需要在其代码中同时使用lang3text,那么谨慎对两者都有明确的依赖关系。
  • 参考:kyleblaney.com/maven-best-practices - “使用了未声明的依赖”
猜你喜欢
  • 1970-01-01
  • 2021-05-20
  • 2019-07-08
  • 2012-02-10
  • 2018-10-17
  • 1970-01-01
  • 2016-05-17
  • 2018-04-03
  • 2018-12-08
相关资源
最近更新 更多