使用上几次用到得User实体类,在其中重写equals方法。
@Override public boolean equals(Object obj) { if(obj==null)return false; if(this==obj)return true; if(obj instanceof User) { User u = (User) obj; return this.getId()==u.getId() &&this.getUsername().equals(u.getUsername()) &&this.getPassword().equals(u.getPassword()) &&this.getAge()==u.getAge(); } return false; }
这里重写的方法,将内容相同的User对象视为同一个User对象
测试方法
User类
public class User { private Integer id; private String username; private String password; private Integer age; public User() { super(); } public User(Integer id, String username, String password, Integer age) { super(); this.id = id; this.username = username; this.password = password; this.age = age; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "User [id=" + id + ", username=" + username + ", password=" + password + ", age=" + age + "]"; } @Override public boolean equals(Object obj) { if(obj==null)return false; if(this==obj)return true; if(obj instanceof User) { User u = (User) obj; return this.getId()==u.getId() &&this.getUsername().equals(u.getUsername()) &&this.getPassword().equals(u.getPassword()) &&this.getAge()==u.getAge(); } return false; } }
测试类EqualsTest.java
public class EqualsTest { public static void main(String[] args) { User u1 = new User(1, "三哥无邪", "1514010311", 21); User u2 = new User(1, "三哥无邪", "1514010311", 21); User u3 = u2; User u4 = new User(2, "三哥无邪", "1514010311", 21); System.out.println(u1.equals(u2)); System.out.println(u1.equals(u3)); System.out.println(u2.equals(u3)); System.out.println(u2.equals(u4)); } }
结果