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一致。

  • 相关阅读:
    Alpha 冲刺 (1/10)
    项目需求分析答辩总结
    项目UML设计(团队)
    第七次作业--项目需求分析(团队)
    第六次作业--结对编程第二次
    第四次作业--项目选题报告(团队)
    第二次结对作业
    第一次结对编程作业
    第7组 团队展示
    js学习笔记
  • 原文地址:https://www.cnblogs.com/jinc/p/2089315.html
Copyright © 2011-2022 走看看