@Override public boolean areEqual(Object left, Object right) { return left == right || ((left instanceof int[][] && right instanceof int[][]) ? equalityHelper((int[][]) left, (int[][]) right, intHasher) : Objects.equals(left, right)); } }
@Override public boolean areEqual(Object left, Object right) { return left == right || ((left instanceof long[][] && right instanceof long[][]) ? equalityHelper((long[][]) left, (long[][]) right, longHasher) : Objects.equals(left, right)); } }
@Override public boolean areEqual(Object left, Object right) { return left == right || ((left instanceof char[][] && right instanceof char[][]) ? equalityHelper((char[][]) left, (char[][]) right, charHasher) : Objects.equals(left, right)); } }
@Override public boolean areEqual(Object left, Object right) { return left == right || ((left instanceof CharSequence[] && right instanceof CharSequence[]) ? CrossHash.equalityHelper((CharSequence[]) left, (CharSequence[]) right, spaceIgnoringHasher) : Objects.equals(left, right)); } };
@Override public boolean areEqual(Object left, Object right) { return left == right || ((left instanceof CharSequence[] && right instanceof CharSequence[]) ? equalityHelper((CharSequence[]) left, (CharSequence[]) right, stringHasher) : Objects.equals(left, right)); } }
@Override public boolean areEqual(Object left, Object right) { if(left == right) return true; Class l = left.getClass(), r = right.getClass(); if(l == r) { if(l.isArray()) { if(left instanceof int[]) return Arrays.equals((int[]) left, (int[]) right); else if(left instanceof long[]) return Arrays.equals((long[]) left, (long[]) right); else if(left instanceof char[]) return Arrays.equals((char[]) left, (char[]) right); else if(left instanceof double[]) return Arrays.equals((double[]) left, (double[]) right); else if(left instanceof boolean[]) return Arrays.equals((boolean[]) left, (boolean[]) right); else if(left instanceof byte[]) return Arrays.equals((byte[]) left, (byte[]) right); else if(left instanceof float[]) return Arrays.equals((float[]) left, (float[]) right); else if(left instanceof short[]) return Arrays.equals((short[]) left, (short[]) right); else if(left instanceof char[][]) return equalityHelper((char[][]) left, (char[][]) right, charHasher); else if(left instanceof int[][]) return equalityHelper((int[][]) left, (int[][]) right, intHasher); else if(left instanceof long[][]) return equalityHelper((long[][]) left, (long[][]) right, longHasher); else if(left instanceof CharSequence[]) return equalityHelper((CharSequence[]) left, (CharSequence[]) right, stringHasher); else if(left instanceof Object[]) return Arrays.equals((Object[]) left, (Object[]) right); } return Objects.equals(left, right); } return false; } }