`
beyondqinghua
  • 浏览: 41725 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

JAVA中equals的编写

    博客分类:
  • JSE
阅读更多

下面是为实现一个高质量equals方法的处方:

1、  使用==操作符检查“实参是否为指向对象的一个引用”。

2、  使用instanceof操作符检查“实参是否为正确的类型”。

3、  把实参转换到正确的类型。

4、  对于该类中的每一个“关键”域,检查实参中的域是否与当前对象中对应的域值匹配。数值可以直接使用==比较,实例可以使用field==null?o.field==null:field.equals(o.field)

5、  当你编写完equals方法之后,应该问自己三个问题:他是否是对称的、传递的、一致的?

一些告戒:

1、  当你改写equals的时候,总要改写hashCode

2、  不要企求你的equals方法过于繁杂(周全)。

3、  不要使equals方法依赖于不稳定的资源,比如transient类型

分享到:
评论
2 楼 lingzantia 2008-03-11  
用common-lang的equalsbuilder和tostringbuilder hashcodebuilder,写个模板,然后就方便了.
1 楼 gordonAtJava 2008-03-11  
这个有问题

2、  使用instanceof操作符检查“实参是否为正确的类型”。

相关推荐

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

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

    java中equals和的比较.doc

    Java 中 equals 和 == 的比较 在 Java 编程中,equals 和 == 是两个常用的比较操作符,但它们之间存在着很大的区别。了解这两者的区别非常重要,因为它直接影响着程序的正确性和效率。 在 Java 中,有两种类型的...

    java 资料 equals 与== 的区别

    Java 中的equals和==的区别 Java 是一种面向对象的编程语言,其中有两种数据类型:基本数据类型和引用数据类型。基本数据类型包括整数...在编写 Java 代码时,需要根据具体情况选择使用 == 运算符或 equals 方法。

    java中equals和==的区别.pdf

    在Java编程语言中,`equals()`方法和`==`运算符是两个经常被用来比较对象的工具,但它们之间有着显著的区别。理解这些差异对于编写正确的代码至关重要。 首先,`equals()`方法是`java.lang.Object`类的一个成员方法...

    JAVA中equals和的区别.doc

    "在Java中,`equals()`方法和`==`运算符都是用来比较对象的,但它们在比较时有着本质的不同。`==`运算符主要用于比较基本类型变量的值,而对于引用类型的变量,它比较的是两个变量在内存中存储的地址,也就是它们...

    java中equals和==的区别文.pdf

    总之,理解 `equals()` 和 `==` 在Java中的差异对于编写高效、无误的代码至关重要。在比较对象时,使用 `equals()` 来检查内容,而使用 `==` 来检查是否为同一个对象。对于 `String` 类型,还要注意字符串常量池的...

    java中equals和==的比较文.pdf

    在Java中,`equals()`方法和`==`运算符都是用来比较对象的,但它们的比较方式不同。`==`运算符用于比较基本类型(如int,char)的值是否相等,对于引用类型,`==`比较的是两个引用是否指向内存中的同一个对象。而`...

    java中equals和==的区别的剖析.pdf

    在Java编程语言中,`equals()` 和 `==` 是两种常用的比较操作,它们在处理不同数据类型时有着明显的区别。`==` 操作符主要用于基本数据类型(如 int, double 等)以及引用类型的变量,它比较的是两个变量所指向的...

    java中equals和==的区别[文].pdf

    在Java编程语言中,`equals()`方法和`==`运算符是两个经常被用来比较对象的工具,但它们之间存在着显著的区别。理解这些差异对于编写正确的代码至关重要。 首先,`equals()`方法是`java.lang.Object`类的一个成员...

    Java中equals与==的用法和区别

    Java中equals与==的用法和区别 Java 中的 equals 与 == 是两个常用的比较操作符,但是它们的用法和区别却非常重要。理解它们的差异是编写高效、正确的 Java 程序的关键。 什么是 == ? 在 Java 中,== 是一个比较...

    Java中的equals()和hashCode()契约Ja

    在Java编程语言中,`equals()`和`hashCode()`方法是两个至关重要的概念,它们与对象的比较和哈希表操作紧密相关。理解这两个方法的工作原理及其契约是成为一名熟练的Java开发者所必需的。 首先,`equals()`方法是...

    java中hashcode和equals的详解.pdf

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

    Java_重写equals()和hashCode()

    总之,理解并正确重写 `equals()` 和 `hashCode()` 方法对于编写高质量的Java代码至关重要,这直接影响到对象比较的逻辑以及使用哈希表的数据结构的效率。通过遵循上述原则和最佳实践,我们可以确保对象的比较行为...

    java编写的计算器

    Java 编写的计算器是一个基础但实用的编程项目,它展示了如何使用Java语言来实现一个图形用户界面(GUI)程序。这个计算器可能包含了基本的数学运算,如加、减、乘、除,以及可能的一些特殊功能,如求平方根、百分比...

    java equals函数用法详解

    在Java编程语言中,`equals()` 方法是一个...理解并正确使用 `equals()` 方法对于编写健壮的Java代码至关重要。通过重写 `equals()`,我们可以确保对象按照预期的方式进行比较,从而避免因默认行为导致的错误或意外。

Global site tag (gtag.js) - Google Analytics