为什么不在Java Standard API中使用commons-lang?
作者:互联网
似乎我加入或开始的每个java项目总是将commons-lang作为依赖项 – 并且有充分的理由. commons-lang拥有大量的类和实用方法,这些方法与其他语言中最标准的API相当标准.为什么Sun / Oracle / JCP没有采用公共标准api中的一些东西?
解决方法:
正如已经指出的那样,commons API中的一些特性使它成为Java,经常实现(恕我直言)比它们最初在公共库中更好.枚举是典型的例子.
就他们为什么不采用更多公共语言而言,以及某些课程中存在混淆因素.以StrBuilder为例,它比Java StringBuilder更强大,并且可以扩展.但是我不确定我是不是要将这样的类添加到Java核心API中,StringBuilder / StringBuffer对于大多数目的来说都非常好,而在那里有另一个真的会变得有点混乱.它们无法真正改变StringBuilder以适应所有更改,因为这可能会破坏现有代码.即使他们确实添加了一个,那么当其他人出现另一个更强大的版本时呢? StrBuilder2?不久之后,一切都变得一团糟(有些人认为核心API已经存在,更不用说添加这些了.)
和往常一样,最重要的是应该包含在公共场所中的内容.有些人可能希望看到添加MutableXXX类,其他人看XXXUtils类,其他人看时间包……实际上没有共同的共识.
另一件大事是Java开发人员必须更加小心核心Java API,而不是Apache开发人员为commons-lang做的事情.如果commons-lang中的一个糟糕的设计在将来的版本中被取代,那么旧版本可以被弃用并随后被删除(事实上这似乎就是这样.)在核心Java API中,它需要保持其向后兼容的原因,只是造成更杂乱.
虽然我认为它的价值很多,但我认为应该包含更多公共资源中的功能.我可以看到原因,至少在某种程度上,为什么不是.
标签:java,apache-commons-lang 来源: https://codeday.me/bug/20190518/1128889.html