ApacheCommons 是一个非常成熟的库,但是它也有将近10年的历史了,目标是 Java 1.4。番石榴是 open sourced in 2007,目标是 Java5,因此是 番石榴从 Java5特性中受益匪浅: < em > 泛型 、 < em > varargs 、 < em > enums 和 < em > 自动装箱 。
According to the Guava developers, generics are one reason they chose to create a new library instead of improving Apache Commons (see the 谷歌收藏常见问题解答, under the title "Why did Google build all this, when it could have tried to improve the Apache Commons Collections instead?").
I agree with them: while often criticized (no reification, limited due to backward compatibility), Java generics are still 非常 useful when used appropriately, like Guava does. I'd rather quit than work with non-generified collections!
虽然 Apache Commons 的开发似乎随着 Commons Lang 3.0的开发而加速,但 Guava 目前似乎获得了更多的动力,而 Google 则开放了更多的内部类。
由于谷歌内部严重依赖它,我不认为它会很快消失。另外,开源的公共库使 Google 能够更容易地开源依赖于它的 其他库(而不是像 Guice 现在的 是的那样依赖于 重新包装库)。
结论
For all the above reasons, Guava is my go-to library when starting a new project. And I am very grateful to Google and to the awesome Guava developers, who created this fantastic library.