Guava:谷歌 Java 核心库

2023-12-13 04:24:14

Guava 是 Google 推出的一套核心 Java 库,其中包括新的集合类型(如 multimap 和 multiset)、不可变集合、图库以及并发、I/O、散列、基元、字符串等实用程序!它广泛应用于 Google 内部的大多数 Java 项目,同时也被许多其他公司广泛使用。

Guava有两种写法:

  • JRE 版本需要 JDK 1.8 或更高版本。
  • 如果需要 Android 支持,请使用 Android 版本。您可以在 android 目录中找到 Android Guava 源代码。

在构建中添加 Guava

Guava 的 Maven 组 ID 是 ,其工件 ID 是 。Guava 提供两种不同的 “口味”:一种用于(Java 8+)JRE,另一种用于 Android 或任何希望与 Android 兼容的库。这些 "风味 "在 Maven 版本字段中指定为.NET 或 .NET 版本。

使用 Maven 添加 Guava 依赖关系的方法如下:

<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>32.1.3-jre</version>
  <!-- or, for Android: -->
  <version>32.1.3-android</version>
</dependency>

使用 Gradle 添加依赖关系:

dependencies {
  // Pick one:

  // 1. Use Guava in your implementation only:
  implementation("com.google.guava:guava:32.1.3-jre")

  // 2. Use Guava types in your public API:
  api("com.google.guava:guava:32.1.3-jre")

  // 3. Android - Use Guava in your implementation only:
  implementation("com.google.guava:guava:32.1.3-android")

  // 4. Android - Use Guava types in your public API:
  api("com.google.guava:guava:32.1.3-android")
}

关于何时使用和何时使用的更多信息

快照和文件

从分支构建的 Guava 快照可通过 Maven 使用版本 ,或 Android 版本。

  • 快照 API 文档:guava
  • 快照 API 差异:guava

重要警告

  1. 在类或方法级别标有注解的 API 是可以更改的。它们可以随时以任何方式修改,甚至删除。如果您的代码本身是一个库(即,在您自己无法控制的用户 CLASSPATH 中使用),则不应使用测试版 API,除非您重新打包它们。如果您的代码是一个库,我们强烈建议您使用 Guava Beta Checker 来确保您没有使用任何 @Beta API!
  2. 没有二进制兼容的 API 将在未来无限期地保持二进制兼容。(以前,我们有时会在弃用期后移除此类 API)。上一次删除非 API 的版本是 Guava 21.0)。即使是 API 也将保留(同样,除非它们)。我们没有计划再次移除这些 API,但官方说法是,我们将留有余地,以防出现意外(比如,严重的安全问题)。
  3. Guava 有一个在运行时链接所需的依赖关系:.NET。它还有一些仅用于注释的依赖项,我们将在该链接中详细讨论。
  4. 除非另有说明,否则所有对象的序列化形式都可能发生变化。请勿持久化这些对象,并假定它们可被未来版本的程序库读取。
  5. 我们的类不是为了防止恶意调用者而设计的。您不应将它们用于可信代码与不可信代码之间的通信。
  6. 对于主线版本,我们使用 Linux 上的 OpenJDK 8、11 和 17 对库进行了测试,另外还在较新的 JDK 和 Windows 上进行了一些测试。在非 Linux 环境下,某些功能可能无法正常工作,特别是在.NET 环境下。对于 Android 版本,我们的单元测试也在 API 级别 15(Ice Cream Sandwich)上运行。

文章来源:https://blog.csdn.net/SEO_juper/article/details/134894784
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。