Specialize Objects.equals for strings.
Change-Id: If9dcb44e793055f312cfc2029961d41f30753775
diff --git a/user/super/com/google/gwt/emul/java/util/Objects.java b/user/super/com/google/gwt/emul/java/util/Objects.java
index 50cef14..f306edf 100644
--- a/user/super/com/google/gwt/emul/java/util/Objects.java
+++ b/user/super/com/google/gwt/emul/java/util/Objects.java
@@ -19,7 +19,7 @@
/**
* See <a
- * href="http://docs.oracle.com/javase/7/docs/api/java/util/Objects.html">the
+ * href="http://docs.oracle.com/javase/8/docs/api/java/util/Objects.html">the
* official Java API doc</a> for details.
*/
public final class Objects {
@@ -86,6 +86,11 @@
return (a == b) || (a != null && a.equals(b));
}
+ @SuppressWarnings("StringEquality")
+ public static boolean equals(String a, String b) {
+ return a == b;
+ }
+
public static int hashCode(Object o) {
return o != null ? o.hashCode() : 0;
}
diff --git a/user/test/com/google/gwt/emultest/java/util/ObjectsTest.java b/user/test/com/google/gwt/emultest/java/util/ObjectsTest.java
index f6416e2..0ff1de8 100644
--- a/user/test/com/google/gwt/emultest/java/util/ObjectsTest.java
+++ b/user/test/com/google/gwt/emultest/java/util/ObjectsTest.java
@@ -32,6 +32,7 @@
public void testCompare() {
Comparator<Integer> intComparator = new Comparator<Integer>() {
+ @SuppressWarnings("NumberEquality")
@Override
public int compare(Integer a, Integer b) {
if (a == b) {
@@ -76,14 +77,19 @@
public void testEquals() {
assertTrue(Objects.equals(null, null));
- assertFalse(Objects.equals(null, "not null"));
- assertFalse(Objects.equals("not null", null));
assertFalse(Objects.equals(new Object(), new Object()));
Object obj = new Object();
assertTrue(Objects.equals(obj, obj));
}
+ public void testStringEquality() {
+ assertTrue(Objects.equals("a", "a"));
+ assertFalse(Objects.equals("a", "b"));
+ assertFalse(Objects.equals(null, "not null"));
+ assertFalse(Objects.equals("not null", null));
+ }
+
public void testHashCode() {
assertEquals(0, Objects.hashCode(null));
Object obj = new Object();