当前位置: 首页 > 编程笔记 >

Java实现equals()方法

公孙胡媚
2023-03-14
本文向大家介绍Java实现equals()方法,包括了Java实现equals()方法的使用技巧和注意事项,需要的朋友参考一下

示例

要轻松实现对象的equals方法,可以使用EqualsBuilder类。

选择字段:

@Override
public boolean equals(Object obj) {

    if(!(obj instanceof MyClass)) {
        return false;
    }
    MyClass theOther = (MyClass) obj;
    
    EqualsBuilder builder = new EqualsBuilder();
    builder.append(field1, theOther.field1);
    builder.append(field2, theOther.field2);
    builder.append(field3, theOther.field3);
    
    return builder.isEquals();
}

使用反射:

@Override
public boolean equals(Object obj) {
    return EqualsBuilder.reflectionEquals(this, obj, false);
}

布尔参数用于指示是否等于应检查瞬态字段。

使用反射避免某些字段:

@Override
public boolean equals(Object obj) {
    return EqualsBuilder.reflectionEquals(this, obj, "field1", "field2");
}

           

 类似资料:
  • 本文向大家介绍Java中equals()方法重写实现代码,包括了Java中equals()方法重写实现代码的使用技巧和注意事项,需要的朋友参考一下 Java中equals()方法重写实现代码   Java中的equals()方法是在Object类中定义,Object类是所有类的父类。换句话说,任何类都隐含地继承了该方法。判断两个对象的内容是否相同,必须使用equals()方法,对于没有重写该方法的

  • 问题内容: 常见问题:在Java中实现默认方法的覆盖时,与仅将已实现的方法与将独立逻辑写入equals方法相比,我应该担心什么?我注意到有人在另一个问题中提及,该问题返回false而抛出。是什么使这些不一致的结果成为理想的功能? 采样方法: 编辑: 引用可比文档 当且仅当e1.compareTo(e2)== 0对于C类的每个e1和e2具有与e1.equals(e2)相同的布尔值时,才可以认为C类的

  • 如果你有如下需求,你必须重载 equals() 和 hashCode() 方法: 想把持久类的实例放入 Set 中(当表示多值关联时,推荐这么做),而且 想重用脱管实例 Hibernate 保证,仅在特定会话范围内,持久化标识(数据库的行)和 Java 标识是等价的。因此,一旦我们混合了从不同会话中获取的实例,如果希望 Set 有明确的语义,就必须实现 equals() 和 hashCode()。

  • 问题内容: 我应该如何实施和在Java下面的类? 问题答案: 在Eclipse中,右键单击->源->生成hashCode(),然后equals()给出以下信息: 我已选择代码作为唯一字段

  • 本文向大家介绍Java中AbstractSequentialList的equals()方法,包括了Java中AbstractSequentialList的equals()方法的使用技巧和注意事项,需要的朋友参考一下 该方法从Java中的AbstractList类继承。它用于检查对象与此列表是否相等。如果对象等于此列表,则返回TRUE,否则返回FALSE。 语法如下- 这里,o是要与该列表进行相等性

  • 问题内容: 如何覆盖对象类中的equals方法? 即我有 我想将参数obj转换为Person类型,但是如果执行(Person)obj,它将无法正常工作。 问题答案: 您可以将其强制转换为方法,只需使用的实例确保其类型正确