1.判断是否为空(null),是则false
2.判断是否为同一类型(instanceof),否则false
3.判断是否为同一对象(==),是则true,否则执行EqualsBuilder
package com.iwindyforest.eb;
import org.apache.commons.lang.builder.EqualsBuilder;
public class User
{
int id;
String name;
String sex;
int age;
String address;
public User(int id, String name, String sex, int age, String address)
{
this.id = id;
this.name = name;
this.sex = sex;
this.age = age;
this.address = address;
}
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getSex()
{
return sex;
}
public void setSex(String sex)
{
this.sex = sex;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
public String getAddress()
{
return address;
}
public void setAddress(String address)
{
this.address = address;
}
public boolean equals(User user)
{
if(user == null)
{
return false;
}
if(!(user instanceof User))
{
return false;
}
if(this == user)
{
return true;
}
else
{
return new EqualsBuilder()
.append(this.getId(), user.getId())
.append(this.getAddress(), user.getAddress())
.append(this.getAge(), user.getAge())
.append(this.getName(), user.getName())
.append(this.getSex(), user.getSex)).isEquals();
}
}
}
package com.iwindyforest.eb;
public class EqualsBuilderTest
{
User a, b;
public EqualsBuilderTest()
{
a = new User(1, "cyh", "male", 20, "shangdi haidian beijing");
b = new User(1, "cyh", "male", 20, "shangdi haidian beijing");
System.out.println(a.equals(null));
System.out.println(a.equals(new User(2, "cyh", "male", 20,
"shangdi haidian beijing")));
System.out.println(a.equals(b));
}
public static void main(String[] args)
{
new EqualsBuilderTest();
}
}
分享到:
相关推荐
下面的示例展示了如何使用 `EqualsBuilder` 来比较两个整型数组: ```java import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.ArrayUtils; public class ...
本章节提供了集成的具体步骤和示例代码,帮助用户快速完成集成过程。 #### 章节七:Applets **简介** Applets是早期Java应用程序的一种形式,它们可以在浏览器中运行。尽管现在HTML5已经成为主流,但在某些特定...
描述中的"hashCodeBuilder EqualsBuilder ToStringBuilder"提到了三个关键的类,它们都是Apache Commons Lang中用于构建对象哈希码、比较平等性和生成字符串表示的重要工具。 1. **HashCodeBuilder**: 在Java中,`...
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。 Hutool中的工具方法来自每个用户的精雕细琢,它涵盖了...
针对`Person`类的实现,我们可以参考以下示例代码: ```java import java.io.Serializable; public class Person implements Serializable { private String name; private String phone; private int age; /...
import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder;
在实践中,为了代码的可读性和一致性,可以考虑使用Apache Commons Lang库的EqualsBuilder和HashCodeBuilder,或者使用Lombok库的@EqualsAndHashCode注解,它们可以帮助我们更方便地生成这些方法。 总的来说,重写...
java包。 import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder;
通过上述示例可以看出,Commons Lang极大地简化了常见的开发任务,并提供了统一且可靠的实现方式。无论是处理字符串、枚举、异常还是日期时间,Commons Lang都能提供强大的支持,是Java开发者不可或缺的工具箱之一。...
本文将详细介绍如何在Hibernate中实现复合主键,并通过具体的代码示例进行讲解。 #### 一、复合主键概念 复合主键是指由两个或两个以上的字段共同组成的主键。在关系型数据库中,当单个字段不足以唯一标识一条记录...
6. EqualsBuilder/HashCodeBuilder提供了方便的方法来覆盖equals() 和hashCode()方法 7.以Range结尾的类主要提供一些范围的操作,包括判断某些字符,数字等是否在这个范围以内 8.ArrayUtils 提供了数组的复制,查找,...
### Java 计算同一 List 中是否有相同值 在 Java 编程中,判断一个 `List` 中是否存在重复元素是一项常见的需求。特别是在数据处理、验证或分析等场景中,确保数据的唯一性对于维持数据完整性至关重要。...
`EqualsBuilder`和`HashCodeBuilder`帮助构建更安全的`equals()`和`hashCode()`方法。 8. **文本格式化**:`FormatUtils`提供了格式化输出的功能,可以方便地处理各种格式的文本,如百分比、货币等。 9. **异常...
6. **对象工具**:`org.apache.commons.lang3.builder`提供了对象比较、深拷贝等实用工具,如`EqualsBuilder`和`HashCodeBuilder`用于实现自定义的equals()和hashCode()方法。 7. **异常处理**:`org.apache....
在代码示例中,我们首先看到了 `CharSet` 和 `CharSetUtils` 的使用案例。 - **CharSet**: `CharSet` 类可以用来定义一个字符集,例如只包含元音字母 "aeiou" 的字符集。通过调用 `CharSet.getInstance("aeiou")` ...
Java社区提供了一些工具类和库来简化对象比较,例如Apache Commons Lang的`EqualsBuilder`和`HashCodeBuilder`,或者Google的Guava库中的`Objects.equal()`和`Objects.hashCode()`。 在实际编程中,确保复杂对象的...
- **ToStringBuilder** 和 **EqualsBuilder**:用于重写对象的toString方法和equals方法,这些是构建对象方法中的重要工具。 ### Apache Commons BeanUtils Commons BeanUtils库专注于Java Bean的操作,包括属性的...
这个实现使用了 EqualsBuilder 的 reflectionEquals 方法来比较两个对象是否相等,并使用 HashCodeBuilder 的 reflectionHashCode 方法来计算对象的哈希码。 五、结论 Java List 比较详解及实例是一个重要的知识点...
java类源码JavaForger JavaForger可以使用现有的Java类作为输入从模板创建源代码。 它读取字段,方法和其他类数据以在模板中填充变量。 JavaForger包括通用Java代码的默认模板,例如equals,...EqualsBuilder() .appen
`EqualsBuilder`是Apache Commons Lang中的工具类,用于构建两个对象是否相等的逻辑。 ### 5. 数据校验 ```java Validate.notNull(object, message); Validate.isTrue(expression, message); ``` `Validate`是...