zoukankan      html  css  js  c++  java
  • java equals方法

    编写完美的equals方法的建议:

    public class Test { 
    
        String field1 = null; 
        String field2 = null; 
    
        public Test() { 
    
        } 
    
        @Override 
        // 显式参数命名为otherObject,稍后需要将它转换成另一个叫做other变量 
        public boolean equals(Object otherObject) { 
            // 检测this与otherObject是否引用同一个对象 
            if (this == otherObject) { 
                return true; 
            } 
            // 检测otherObject是否属于为null,如果为null,返回false 
            if (otherObject == null) { 
                return false; 
            } 
            // 比较this与otherObject是否是同一类型,如果equals在每个子类中有所改变就是用getClass()检查 
            if (this.getClass() != otherObject.getClass()) { 
                return false; 
            } 
            // 如果所有的子类拥有统一的equals语义,就是用instanceof检查 
            if (!(otherObject instanceof Test)) { 
                return false; 
            } 
    
            // 将otherObject转换为相应的类类型变量 
            Test other = (Test) otherObject; 
    
            // 现在开始对所有需要比较的域进行比较了。使用==比较基本类型域,使用equals比较对象域。 
            return field1 == other.field1 && field2.equals(field2); 
        } 
    }
    

    如果重新定义equals就必须重新定义hashCode方法,以便用户可以将对象插入到hash表中。equals如果返回需与hashCode一致。

  • 相关阅读:
    MapReduce编程:数字排序
    MapReduce编程:平均成绩
    线性回归(linear regression)
    pip安装第三方库镜像源选择
    malloc/free 和 new/delete
    strcpy函数解析
    牛客-数据库SQL实战
    Numpy学习
    花式饺子
    MapReduce编程:单词去重
  • 原文地址:https://www.cnblogs.com/jinc/p/2089315.html
Copyright © 2011-2022 走看看