MapMaker
maximumSize
标记为@Beta
。当您将其用作缓存时,设置最大大小是一个非常有用的功能,我想在生产代码中使用它。根据其他谷歌产品的经验,测试版非常可靠。任何人都知道为什么它是@Beta
?
答案 0 :(得分:8)
它在Google的生产中使用,并且没有关于API更改的即时计划。已经达成共识来支持加权条目,我们可能会继续将算法发展为更接近ConcurrentLinkedHashMap。在这种情况下,@ Beta只是表明方法合同没有正式确定。
答案 1 :(得分:1)
来自javadoc:
表示公用API(公共类,方法或字段)在将来的版本中会发生不兼容的更改,甚至删除。带有此注释的API不受其包含库所做的任何兼容性保证。
所以它并不意味着质量有问题,或者不适合生产使用,他们只是保留以后更改它的权利。
答案 2 :(得分:0)
如果您的项目是一个不打算嵌入其他人的应用程序的最终应用程序,那么使用@Beta的任何东西都是完全安全的。 API可能会在以后更改,IMO运行的最大风险是您可能需要稍微更改代码,因为方法签名已更改。
另一方面,如果您正在开发某种框架,您希望您的项目位于许多客户的类路径中,您可能希望避免使用@Beta。你永远不知道你的客户是否会在类路径上有不同版本的Guava - 在这种情况下会发生不可预测的事情。
ColinD在这里解释得最好:Best Way To Use Guava
编辑:啊是的,并回答你为什么称之为@Beta的具体问题 - 这只是为了记录这个事实,即MapMaker maximumsize在下一个版本中仍然会发生变化(它是不是该代码被认为是片状,不稳定或不适合生产)