这些类已经存在很长时间了(自 11.0 起),因此我想请求对它们进行 de-beta 化。它们是很棒的容器/抽象,因此我们希望使用它们而不用担心即将损坏。
[google/guava]从 HashFunction/Hashing/HashCode 中删除 @Beta
回答
我签了!
@flamespt 看起来它仍然标记为测试版。对发生的事情有什么想法吗?
事实上,在 com.google.common.hash 包中,以下类也被标记为@Beta,但一直在@since 11 左右:
Funnels.java HashFunction.java HashCode.java Hasher.java Funnel.java Hashing.java
也许 @Beta 应该从所有这些中删除?
似乎很难删除@Beta?刚刚升级到 29-jre,哈希仍然是 @Beta?!
有关于此的任何更新吗?这似乎是一个微不足道的代码更改。
我们正在审查所有@Beta
API,目的是删除@Beta
所有没有严重的未解决 API 问题的 API。
看来您最近从多个类以及(来自内部更改?)中删除了 @Beta,但没有从 com.google.common.hash 包中的其他类中删除HashFunction
了@Beta ,尤其是BloomFilter
和Funnel
,它们自版本 11 以来一直是 Guava 的一部分。
您能分享一下您关于“取消投注”这两个类别的计划吗?它们对用户来说“风险”有多大? (出于好奇:BloomFilter
内部使用有多广泛?)或者您可能计划从BloomFilter
#2226中提到的提取一个接口? ;)
为什么不从哈希中删除@Beta?其他的已经被删除了。哈希有问题吗?
澄清一点:@Beta
并不(也从来没有)意味着 API 是“有问题的”。
Beta API 代表了我们不准备冻结的 Guava 功能,无论出于何种原因:因为这些方法可能找不到足够的用户,因为它们可能会被移动,因为它们的用途可能太窄而无法将它们包含在 Guava 中。
也就是说,@Beta API 经过了充分的测试和支持,并得到了 Guava 其余部分所受到的所有关心和喜爱。
@Beta注解最大的内涵是被注解的类或方法可能会发生变化。它们可以随时以任何方式修改,甚至删除。如果你的代码本身就是一个库(即它在你自己控制范围之外的用户的 CLASSPATH 上使用),那么你不应该使用 beta API,除非你重新打包它们(例如使用 ProGuard)。
@Beta
标签是否给Hashing
您带来了问题?如果是这样,请详细说明。
是的,我们收到了来自某些扫描仪工具和/或 Intellij 的警告。这是一个令人不安的想法,您提供了一个 API/事件框架,我们已经依赖它很多年了 (!!) 现在我们的构建仍然警告我们依赖测试版功能!我可以理解,这样的注释是在引入新功能时进行的,但是经过数年和第 10 个版本之后,您预计测试版会成熟为稳定的长期功能。
@kluever 你有没有讨论@Beta
过从BloomFilter
和中删除Funnel(s)
?我应该创建一个单独的问题吗?
我们没有看那些。一个单独的问题会很好,谢谢。
@kluever我创建了#5863。