Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用番石榴的最佳方法_Java_Guava - Fatal编程技术网

Java 使用番石榴的最佳方法

Java 使用番石榴的最佳方法,java,guava,Java,Guava,你认为用番石榴最好的方法是什么?因为,在网站上,伙计们说在发布1.0之前,接口可能会发生变化。考虑到这一点,您编写的代码不应该直接依赖于这些接口,因此,您是否将您调用的所有Guava代码包装到我们项目中的某种层或外观中,以便,如果这些接口发生更改,那么您至少将这些更改集中在一个地方 哪条路最好?我真的很想开始使用它,但我的脑海中突然出现了一个问题:哈哈:)我不知道你从哪里得到的关于接口在1.0版之前可能会更改的信息。Guava的前身Google Collections也是如此,但它已经发布了1.

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


哪条路最好?我真的很想开始使用它,但我的脑海中突然出现了一个问题:哈哈:)

我不知道你从哪里得到的关于接口在1.0版之前可能会更改的信息。Guava的前身Google Collections也是如此,但它已经发布了1.0版,现在是Guava的一部分。此外,谷歌收藏的任何内容都不会以破坏代码的方式进行更改

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

请注意,即使使用
@Beta
API,它们提供的功能也很可能不会被完全删除。。。最多他们可能只是改变功能的提供方式。此外,我相信他们在完全删除之前,正在反对他们为1个版本更改的任何
@Beta
API的原始形式,让您有时间看到它已更改并更新为该API的新形式
@Beta
也并不意味着一个类或方法没有经过很好的测试或不适合生产使用


最后,如果您正在开发一个使用番石榴的应用程序,这应该不是什么大问题。无论何时更新到新版本都应该很容易,只要在您使用的任何
@Beta
api发生更改的情况下进行更改即可。使用Guava编写库的人确实需要避免使用
@Beta
API,因为使用其中一个可能会造成一种情况,即您无法在应用程序中切换到较新版本的Guava,或者无法使用另一个使用较新版本的库,因为它会破坏依赖于更改/删除的beta API的较旧库中的代码。

Chris,非常感谢您的回答。你是对的,我读到代码可能会更改到1.0版,但在谷歌收藏网站上,而不是在guava的网站上。我同意你重新考虑使用@Beta注释。再次感谢!卡洛斯,科林,伙计,你真的很注意!谢谢你回答这个问题。。。根本正确。我真想知道他们为什么提出这个
@Beta
注释。由于它不表示
非最终
状态,因此该库的行为与任何其他库一样,您必须了解新版本的更改。这就是新版本的本质(我知道你永远不应该改变公共界面…-)@K.Claszen:我不知道你在说什么。正如我在回答中所解释的那样,
@Beta
确实表明了一些不是最终版本的内容,可能会在将来的版本中发生更改。。。没有
@Beta
的东西不会改变,可以安全地在其他库中使用。@K.Claszen:所有非
@Beta
API都将被冻结,如果不推荐,将在发布后18个月内删除。因此,对于未使用
@Beta
注释的任何内容,都有一些非常有力的保证。