实体类自动重写toString(),equals()和hashCode()方法
来源:互联网 发布:龙骑士 知乎 编辑:程序博客网 时间:2024/06/11 00:21
编写web项目时会遇到大量的实体类,那么多的实体类都要重写toString(),equals()和hashCode()方法,造成大量重复代码。
解决方法:
1.编写一个抽象类,在类中重写以上三个方法。
2.让实体类继承这个抽象类。
所用jar包:
apache-commons-lang.jar
例子程序:
Model.java抽象类
package justest;import java.io.Serializable;import org.apache.commons.lang.builder.EqualsBuilder;import org.apache.commons.lang.builder.HashCodeBuilder;import org.apache.commons.lang.builder.ToStringBuilder;import org.apache.commons.lang.builder.ToStringStyle;public abstract class Model implements Serializable {/** * */private static final long serialVersionUID = 1L;public int hashCode() {return HashCodeBuilder.reflectionHashCode(this);}public String toString() {return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);}public boolean equals(Object obj) {return EqualsBuilder.reflectionEquals(this, obj);}}
Student.java实体类
package justest;public class Student extends Model {private static final long serialVersionUID = 1L;private Long id;private String name;public Student(Long id, String name) {super();this.id = id;this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Long getId() {return id;}}
AutoOverride3Method.java测试类
package justest;public class AutoOverride3Method {public static void main(String[] args) {Student s1 = new Student(1L, "张三");Student s2 = new Student(2L, "李四");Student s3 = new Student(1L, "张三");//测试toString()方法System.out.println(s1);//测试equals方法System.out.println(s1.equals(s2));System.out.println(s1.equals(s3));}}
输出:
Student[id=1,name=张三]falsetrue
0 0
- 实体类自动重写toString(),equals()和hashCode()方法
- equals、hashCode、toString 方法重写
- Java toString equals hashCode 方法的重写
- 重写equals和 toString方法
- String类重写equals()和hashCode()方法
- java类重写equals和hashCode方法
- 重写hashCode和equals方法
- 重写equals和hashCode方法
- 重写hashCode和equals方法
- 重写hashcode和equals方法
- 重写equals() 和 hashCode()方法
- 重写hashCode()和equals()方法
- 重写equals和hashcode方法
- HashCode和equals方法重写
- 重写equals() 和 hashCode()方法
- 关于重写equals方法,hashcode方法,toString方法 ,compareto()方法
- 重写hashCode()方法和重写equals()方法
- Object类中equals,hashCode和toString方法的学习
- Android打开某个activity时自动弹出输入法键盘
- ZOJ 1078
- phoneGap之Android环境搭建
- Tapestry中使用拦截器实现Hibernate的事务管理
- Hadoop的基本概念
- 实体类自动重写toString(),equals()和hashCode()方法
- 重新组织函数--Replace Method with Method Object(以函数对象取代函数)
- Java基础2
- 动态加载dll调试
- 基于Gradle建立Android项目(1)
- [寒江孤叶丶的CrossApp之旅_02]CrossApp如何创建一个新的工程
- iOS 开发 - 自动布局记录
- css display属性
- Linux内核Socket CAN中文文档