参考文档:1. JDK 源码
3. Java-Arrays类-deepEquals()和equals()详解
感谢原作者
理解:
背景:object[] 数组使用没有特定是类标示数组, 没有办法重写数组的equals方法。所以要解决数组比较的场景。
解决方式:
1 java.util.Objects#deepEquals 参数是 Object
对: 数组(java.util.Arrays#deepEquals0)和 其他类型 (e1.equals(e2))的封装。
2. java.util.Arrays#deepEquals0 参数是Object[]
是对基本型数组(基本类型 都有具体实现) 和 封装型数组 (java.util.Arrays#deepEquals) 的封装
3 java.util.Arrays#deepEquals 参数是 Object[]
public static boolean deepEquals(Object a, Object b) { if (a == b) return true; else if (a == null || b == null) return false; else return Arrays.deepEquals0(a, b); }