(Object a, Object b)
| 83 | } |
| 84 | |
| 85 | public static boolean deepEquals(Object a, Object b) { |
| 86 | if (a == b) { |
| 87 | return true; |
| 88 | } |
| 89 | if (a == null) { |
| 90 | return b == null; |
| 91 | } |
| 92 | if (a instanceof boolean[]) { |
| 93 | return b instanceof boolean[] && Arrays.equals((boolean[]) a, (boolean[]) b); |
| 94 | } else if (b instanceof boolean[]) { |
| 95 | return false; |
| 96 | } else if (a instanceof byte[]) { |
| 97 | return b instanceof byte[] && Arrays.equals((byte[]) a, (byte[]) b); |
| 98 | } else if (b instanceof byte[]) { |
| 99 | return false; |
| 100 | } else if (a instanceof short[]) { |
| 101 | return b instanceof short[] && Arrays.equals((short[]) a, (short[]) b); |
| 102 | } else if (b instanceof short[]) { |
| 103 | return false; |
| 104 | } else if (a instanceof int[]) { |
| 105 | return b instanceof int[] && Arrays.equals((int[]) a, (int[]) b); |
| 106 | } else if (b instanceof int[]) { |
| 107 | return false; |
| 108 | } else if (a instanceof char[]) { |
| 109 | return b instanceof char[] && Arrays.equals((char[]) a, (char[]) b); |
| 110 | } else if (b instanceof char[]) { |
| 111 | return false; |
| 112 | } else if (a instanceof float[]) { |
| 113 | return b instanceof float[] && Arrays.equals((float[]) a, (float[]) b); |
| 114 | } else if (b instanceof float[]) { |
| 115 | return false; |
| 116 | } else if (a instanceof double[]) { |
| 117 | return b instanceof double[] && Arrays.equals((double[]) a, (double[]) b); |
| 118 | } else if (b instanceof double[]) { |
| 119 | return false; |
| 120 | } else if (a instanceof Object[]) { |
| 121 | return b instanceof Object[] && Arrays.deepEquals((Object[]) a, (Object[]) b); |
| 122 | } else if (b instanceof Object[]) { |
| 123 | return false; |
| 124 | } else { |
| 125 | return a.equals(b); |
| 126 | } |
| 127 | } |
| 128 | |
| 129 | public static int hash(Object... values) { |
| 130 | return Arrays.hashCode(values); |
nothing calls this directly
no test coverage detected