概述:
用Mocktio时报错,很郁闷
、
看看明明是相等的,呵呵,你以为相等就相等,不用人的思维去思考电脑,对象相不相等取决于equals() 和 hashCode()
如果你不重新这个两个方法,创建两个相同值的对象,其实也是不相等的。
现在去重写这个两个方法
package com.jack.data;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
public class Spitter {
private long l;
private String firstName;
private String lastName;
private String username;
private String password;
public Spitter() {
super();
// TODO Auto-generated constructor stub
}
public Spitter(String firstName, String lastName, String username, String password) {
this.firstName = firstName;
this.lastName = lastName;
this.username = username;
this.password = password;
}
public Spitter(long l, String firstName, String lastName, String username, String password) {
this.l = l;
this.firstName = firstName;
this.lastName = lastName;
this.username = username;
this.password = password;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
public long getL() {
return l;
}
public void setL(long l) {
this.l = l;
}
@Override
public boolean equals(Object obj) {
return EqualsBuilder.reflectionEquals(this, obj, "firstName", "lastName");
}
@Override
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this, "firstName", "lastName");
}
@Override
public String toString() {
return "Spitter [l=" + l + ", firstName=" + firstName + ", lastName=" + lastName + ", username=" + username
+ ", password=" + password + "]";
}
}
总结:采用Apache的lang3进行重写这里两个方法,如果你不想自己写出现意想不到的情况,就引用jar包lang3本文总结:
引用地址: