參考文檔: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); }