您的位置:首页 > IT > 正文

Guava 32.0 发布,Google 的核心 Java 工具库 每日消息

来源:OSCHINA     时间:2023-05-31 07:13:54


(资料图片)

Guava 是 Google 的一套核心 Java 库,包括新的集合类型(如 multimap 和 multiset)、图库,以及用于并发、I/O、散列、缓存、基元、字符串等实用工具。它被广泛用于 Google 内部的 Java 项目,同时也被许多其他公司广泛使用。

目前,Guava 32.0 已发布,该版本带来以下变更:

安全修复

重新实现了 Files.createTempDirFileBackedOutputStream,以进一步解决 CVE-2020-8908 和 Guava issue #2575 (CVE 即将发布)。

不兼容的更改

此版本增加了 Guava 的主要版本号,但没有对 guava工件进行二进制不兼容的更改。尽管如此,此版本还是进行了一些可能有兼容风险 的更改:

此版本对单独的工件 guava-testlib中的 @BetaAPI 进行了二进制不兼容的更改。 此版本为 Guava 的 Android 风格添加了两个方法: Invokable.getAnnotatedReturnType()Parameter.getAnnotatedType()。 此版本从 guava-gwt中删除了各种 API,这只会影响 GWT 的用户,删除的 API 是 EnumsSets.complementOfEnum*BiMap类的 keyType()valueType()方法。 Files.createTempDirFileBackedOutputStream的新实现被注释为 @J2ObjCIncompatible。 新版本的 Files.createTempDir限制当前用户的权限,它可能会破坏任何依赖于让其他用户访问该目录的用户。 如果新版本的 Files.createTempDirFileBackedOutputStream无法安全地创建目录或文件,则会抛出异常。这只有在 Android Ice Cream Sandwich 下才有可能发生。

其他变化

从几乎所有 API 中删除了 @Beta。 增强了 Guava jar ,以包含由 Android Gradle 插件自动获取的 Proguard 配置。 增强了 Guava jar 以在其类文件中包含有关方法参数的信息。 改进了一些类的空值注释。 使用“串行代理”修改类,以声明抛出异常的 readObject方法。 改进了一些类的空值注释。 ...

完整的更改项请在更新公告中查看。

相关文章