Argument(s) are different! Wanted:

来源:互联网 发布:产品经理画图软件 编辑:程序博客网 时间:2024/06/06 03:48

概述:

用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;}@Overridepublic boolean equals(Object obj) {return EqualsBuilder.reflectionEquals(this, obj, "firstName", "lastName");}@Overridepublic int hashCode() {return HashCodeBuilder.reflectionHashCode(this, "firstName", "lastName");}@Overridepublic String toString() {return "Spitter [l=" + l + ", firstName=" + firstName + ", lastName=" + lastName + ", username=" + username+ ", password=" + password + "]";}}
总结:采用Apache的lang3进行重写这里两个方法,如果你不想自己写出现意想不到的情况,就引用jar包lang3
本文总结:

引用地址:

点击打开链接

原创粉丝点击