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();