`
liugang594
  • 浏览: 981630 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java中的equals()方法(转)

阅读更多

equals()方法应该具以下特性:

 

1.自反的:对任何x,x.equals(x)应该返回true;

2.对称的:对于x,y,x.equals(y)返回true,当且仅当y.equals(x)返回true;

3.传递的:对x,y,z,x.equals(y)和y.equals(z)返回true,则x.equals(z)返回true;

4.一致的:对x,y,多次调用x.equals(y)应该一致的返回true或false,如果在等价比较中的信息没有被改变的;

5.对于非空的对象x,x.equals(null)应该返回false;

 

 

根据此和一,以下语句通常会被写在equals()方法里:

if(obj == this) return true;

 

程序员通常会写如下语句:

if( obj instanceOf 当前类){
        //todo
}

 

如果当前类没有子类,则没有问题。否则有可能与规则2相冲突,因为子类对象也是父类对象的一个实例。

解决方法:

if(obj == null) return false;
if(obj.getClass() != this.getClass()){
          return false;
}
//TODO

 

 

分享到:
评论

相关推荐

    Java中equals方法隐藏的陷阱

    Java中equals方法隐藏的陷阱

    java中equals和==的区别

    Java 中 equals 和 == 的区别 Java 中的 equals 和 == 是两个不同的概念,很多开发者容易混淆它们。理解这两个概念的区别是非常重要的,因为它们对编程的正确性和性能都有很大的影响。 首先,我们需要了解 Java ...

    2.javaequals()方法.zip

    2.javaequals()方法.zip2.javaequals()方法.zip2.javaequals()方法.zip2.javaequals()方法.zip2.javaequals()方法.zip2.javaequals()方法.zip2.javaequals()方法.zip2.javaequals()方法.zip2.javaequals()方法.zip2....

    java中的==和equals()方法1

    Java中的==与equals()实例方法Java中测试两个变量是否相等的方法有两个,一个是用==运算符,另一个就是object类提供的equals()方法。2

    java中equals和==的区别.doc

    Java 中 equals 和 == 的区别 Java 中的 equals 和 == 是两个不同的运算符,它们之间的区别是非常重要的。 首先,我们需要了解 Java 中的内存模型。在 Java 中,变量可以分为两种:基本类型(primitive type)和...

    重写equals方法

    在 Java 中,equals 方法是一个非常重要的方法,它用于判断两个对象是否相等,而不是判断两个对象的引用是否相同。在 Object 基类中,equals 方法的实现是使用“==”操作符来比较对象的引用,但是这并不满足实际需求...

    java_equals用法

    java_equals用法,用来熟悉重写equals方法的

    java中equals()函数的用法 equals和==的区别

    在Java编程语言中,`equals()`方法和`==`运算符是两个经常被用来比较对象是否相等的关键概念。理解它们的区别对于编写出正确、健壮的代码至关重要。 首先,`==`运算符用于基本类型(如int, char, boolean)的比较,...

    Java中equals,hashcode和==的区别

    "Java中equals、hashcode和==的区别" Java 中 equals、hashcode 和==的区别是 Java 编程语言中一个经常遇到的问题。这三个概念都是用来比较对象的,但是它们之间存在着本质的区别。 首先,==号是Java中的一个...

    重载equals方法示例

    重载equals方法示例重载equals方法示例重载equals方法示例重载equals方法示例重载equals方法示例

    Java重写equals同时需要重写hashCode的代码说明

    Java重写equals同时需要重写hashCode的代码说明,以及如何重写hashCode方法,此代码演示按照effective java书籍说明的重写思路。代码中演示了使用集合存储对象,并且对象作为key,需重写equals和hashCode.

    java 资料 equals 与== 的区别

    Java 中的equals和==的区别 Java 是一种面向对象的编程语言,其中有两种数据类型:基本数据类型和引用数据类型。基本数据类型包括整数类型、浮点数类型、字符类型、布尔类型等,共有八种;而引用数据类型则包括 ...

    Java中equals()方法重写实现代码

    Java中equals()方法重写实现代码详解 Java中equals()方法是Object类中定义的,作为所有类的父类,任何类都隐含地继承了该方法。 equals()方法用于判断两个对象的内容是否相同,如果没有重写该方法的类,需要重写该...

    java中equals和的比较.doc

    java中equals和的比较

    JAVA中equals和的区别.doc

    JAVA中equals和的区别

    java中hashcode和equals的详解.pdf

    Java 中的 hashCode 和 equals 方法详解 本文详细介绍了 Java 中的 hashCode 和 equals 方法,探讨了这两个方法的作用、实现机制和使用场景。通过对 hashCode 和 equals 方法的深入分析,我们可以更好地理解 Java ...

    java中equals和==的区别.docx

    例如,在 Java 中,String 类的 equals 方法用于比较两个字符串的内容是否相同: ```java String s1 = "Monday"; String s2 = "Monday"; if (s1.equals(s2)) { System.out.println("s1 equals s2"); } else { ...

    浅谈java 重写equals方法的种种坑

    关于 Java 中重写 equals 方法的种种坑 Java 中的 equals 方法是一种用于比较对象是否相等的方法,它是 Object 类中的一个方法。然而,重写 equals 方法并不是一件简单的事情,因为它需要遵守一些约定,否则可能会...

Global site tag (gtag.js) - Google Analytics