implement Arrays.deepEquals and Objects.deepEquals

This commit is contained in:
Joshua Warner
2014-01-30 17:12:34 -07:00
parent 9f505f8522
commit 02becdb5bf
3 changed files with 189 additions and 13 deletions

View File

@ -17,7 +17,25 @@ public final class Objects {
return true;
if (x == null || y == null)
return false;
throw new UnsupportedOperationException("deepEquals is not implemented yet.");
if (x.getClass().isArray()) {
if(x instanceof Object[] && y instanceof Object[])
return Arrays.deepEquals((Object[])x, (Object[])y);
if(x instanceof byte[] && y instanceof byte[])
return Arrays.equals((byte[]) x, (byte[]) y);
if(x instanceof int[] && y instanceof int[])
return Arrays.equals((int[]) x, (int[]) y);
if(x instanceof long[] && y instanceof long[])
return Arrays.equals((long[]) x, (long[]) y);
if(x instanceof short[] && y instanceof short[])
return Arrays.equals((short[]) x, (short[]) y);
if(x instanceof char[] && y instanceof char[])
return Arrays.equals((char[]) x, (char[]) y);
if(x instanceof float[] && y instanceof float[])
return Arrays.equals((float[]) x, (float[]) y);
if(x instanceof double[] && y instanceof double[])
return Arrays.equals((double[]) x, (double[]) y);
}
return x.equals(y);
}
public static boolean equals(final Object x, final Object y) {