IT资讯 Guava 32.0 发布,Google 的核心 Java 工具库

sandro · 2023-05-31 11:00:07 · 热度: 91

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

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

安全修复

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

不兼容的更改

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

  • 此版本对单独的工件 guava-testlib 中的 @Beta API 进行了二进制不兼容的更改。
  • 此版本为 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 方法。
  • 改进了一些类的空值注释。
  • ...

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

猜你喜欢:
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册