Java-Objects类-deepEquals()和equals()详解

参考文档:1.  JDK 源码

2.  Objects类下面的deepEquals()方法

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);
    }

  

posted @ 2021-03-09 20:31  知行-zhixing  阅读(1302)  评论(0编辑  收藏  举报