Guava 31 发布,Google 的核心 Java 库

来源: OSCHINA
编辑: Alias_Travis
2021-09-28 06:59:00

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

更新日志

  • 对 Guava 的空值进行了更彻底的注释
  • base:修改了 Functions.forSupplier  Predicates.instanceOf,以接受一个额外的类型参数来指定返回 Function/ Predicate 的输入类型。
  • collect:增加了 ImmutableMap.ofEntries,与 Map.ofEntries 类似,但适用于 ImmutableMap
  • collect:增加了 ImmutableMap.of ImmutableBiMap.of  ImmutableSortedMap.of 的重载,最多可容纳10个条目。
  • collect:将 ImmutableMap.Builder.build() 重命名为 buildOrThrow()。现有的 build() 方法将继续存在,但可能会被废弃。
  • collect:从 Interner  Interners 中删除了 @Beta
  • collect:为 Streams.stream(Optional) 添加了 @InlineMe
  • hash :从 HashFunction 中删除了 @Beta
  • hash:废弃了有问题的 murmur3_32,并引入 murmur3_32_fixed
  • io:改变了 CharStreams.asWriter(appendable).write(string[, ...]) 以拒绝一个空 string
  • io: 修正了 FileBackedOutputStream 清理中的一个错误。
  • net:改变了 HostAndPort.fromString,以拒绝用非 ASCII 数字拼成的端口号。
  • net: 为 X-Device-Ip X-Device-Referer X-Device-Accept-Language X-Device-Requested-WithSec-CH-Prefers-Color-Scheme Sec-CH-UA-Bitness  Keep-Alive 增加了 HttpHeaders 常量。
  • primitives:修正了 UnsignedLong.doubleValue() 中的一个舍入错误。
  • reflect:改变了 Invokable 的类型层次结构, Invokable 不再继承 AccessibleObject  GenericDeclaration 
  • testlib:增强了 NullPointerTester,允许 <T extends @Nullable Object> 类型的参数 null
  • testlib:修正了影响自定义集合测试套件的派生测试的错误。 setUp  tearDown 方法现在被复制到派生测试套件。
  • util.concurrent: 增加了 ServiceManager.startupDurations()
  • util.concurrent:删除了 Futures.catching  catchingAsync 的 GWT-only 重载,这些重载允许调用者省略 Executor

更多详情可查看:https://github.com/google/guava/releases/tag/v31.0

展开阅读全文
3 收藏
分享
3 评论
3 收藏
分享
返回顶部
顶部