Guava 31 发布,Google 的核心 Java 库
Guava 是 Google 的一套核心 Java 库,包括新的集合类型(如 multimap 和 multiset)、图库,以及用于并发、I/O、散列、缓存、基元、字符串等的实用工具。它被广泛用于 Google 内部的 Java 项目,同时也被许多其他公司广泛使用。
更新日志
- 对 Guava 的空值进行了更彻底的注释
base:修改了Functions.forSupplier和Predicates.instanceOf,以接受一个额外的类型参数来指定返回Function/Predicate的输入类型。collect:增加了ImmutableMap.ofEntries,与Map.ofEntries类似,但适用于ImmutableMapcollect:增加了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_fixedio:改变了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-With、Sec-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。