java.util.Objects.equals 和 com.google.common.base.Objects.equals 有什么区别?

What is the difference between java.util.Objects.equals and com.google.common.base.Objects.equals?

有没有理由使用 Guava 代替 java.util 实现?

java.util.Objects 及其 equals 方法只存在于 Java 7. Guava 版本早于它。如果您至少使用 Java 7,则没有理由使用 Guava 版本。

除了 Guava 方法早于 Java 7 之外还有一个区别:Guava 方法称为 equal 而 Java 方法被称为 equals。这实际上很重要,因为这意味着 Java 版本不能用于静态导入。 (即使忽略这一点,我认为 equal 是一个更好的静态方法名称,它接受两个参数并比较它们是否相等,而 equals 对于像 Object.equals 这样的实例方法更好。)

综上所述,如果您使用的是 JDK7,您可能应该使用 java.util.Objects 版本。