使用番石榴的最佳方式

Car*_*los 6 java guava

您认为使用番石榴的最佳方式是哪种?因为,在网站上,这些人说接口可能会发生变化,直到发布1.0.考虑到这一点,您编写的代码不应直接依赖于这些接口,因此,您是否将所调用的所有Guava代码包装到我们的项目中的某种层或外观中,以便,如果这些接口发生更改,那么您至少将这些变化集中在一个地方?

哪种方式最好?我真的很有兴趣开始使用它,但我有这个问题击中我的想法哈哈:)

Col*_*inD 19

我不知道在1.0版之前,接口可能会发生变化.对于Guava的前身Google Collections来说,情况确实如此,但它已经发布了1.0版本,现在已经成为Guava的一部分.此外,任何属于Google Collections的内容都不会以可能破坏代码的方式进行更改.

Guava本身甚至不使用具有"1.0"概念的发布系统.它只是发布,标记为"r05","r06"等.除非用@Beta注释标记,否则Guava中的所有API都会被有效冻结.如果@Beta在类或接口上,则该类中的任何内容都可能发生变化.如果一个类没有用它注释,但是类中的某些方法是,那些特定的方法可能会发生变化.

请注意,即使使用@BetaAPI,它们提供的功能也很可能无法完全删除...最多它们可能只会改变提供该功能的方式.此外,我相信他们在@Beta完全删除之前,会弃用他们更改的1个版本的原始形式,让您有时间看到它已更改并更新到该API的新形式.@Beta也不意味着某个类别或方法没有经过充分测试或适合生产使用.

最后,如果您正在使用使用Guava 的应用程序,这应该不是一个大问题.无论何时更新到新版本都应该很容易,只要在这里和那里进行更改(如果@Beta您使用的API已更改).是人们编写使用Guava的,他们确实需要避免使用@BetaAPI,因为使用它可能会导致您无法在应用程序中切换到较新版本的Guava或使用另一个使用较新版本的库,因为它会破坏旧库中依赖于已更改/删除的beta API的代码.

  • 科林 - 老兄,你一直在关注!谢谢你回答这个......激进的正确性. (5认同)
  • @K.Claszen:所有非@@ Beta` API都被冻结,如果弃用,只会在发布后的18个月内被删除.所以对于没有使用@@ Beta`注释的内容,有一些非常强有力的保证. (2认同)