只有几个封装类里重写了equals方法,其他的都是直接继承Object类里的,所以要用,当然就要重写拉

解决方案 »

  1.   

    以下为java—api中的原文:equals
    public boolean equals(Object obj)Indicates whether some other object is "equal to" this one. 
    The equals method implements an equivalence relation: It is reflexive: for any reference value x, x.equals(x) should return true. 
    It is symmetric: for any reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true. 
    It is transitive: for any reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true. 
    It is consistent: for any reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the object is modified. 
    For any non-null reference value x, x.equals(null) should return false. 
    The equals method for class Object implements the most discriminating possible equivalence relation on objects; that is, for any reference values x and y, this method returns true if and only if x and y refer to the same object (x==y has the value true). Note that it is generally necessary to override the hashCode method whenever this method is overridden, so as to maintain the general contract for the hashCode method, which states that equal objects must have equal hash codes. 
    Parameters:
    obj - the reference object with which to compare. 
    Returns:
    true if this object is the same as the obj argument; false otherwise.就是说,如果不覆写,比较的是两个对象的地址值。
    注意传进的参数类型是object
    this method returns true if and only if x and y refer to the same object (x==y has the value true)    第一段代码没有覆写,由于比较两个object对象是比较其是否指向同一对象,即是否指向内存中的同一地址,故返回false.