使用番石榴的最佳方式

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

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

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

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

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

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