Home >Java >javaTutorial >equals, hashCode, toString method rewriting
Rules for equals method rewriting
Judgment must be equal (reference consistent)
Judgment Definitely not equal (types are inconsistent)
Judgment may be equal (need to force transfer the current object for comparison)
hashCode rewrite rules
Rewrite based on the unique identifier of the current object
If it is empty, it will return 0 directly. If it is not empty, it will return the hashCode of the unique identifier.
toString rewrite rule, string plus '' to distinguish non-string
Class name {field1=value1, field2=value2}
For example: Person{id=123,name="tom"}
For example:
package com.dada.shiro.entity; import java.io.Serializable; public class Organization implements Serializable { private Long id;//编号 private String name;// 组织机构名称 private Long parentId;// 父编号 private String parentIds;// 父编号列表 private Boolean available = Boolean.FALSE; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Long getParentId() { return parentId; } public void setParentId(Long parentId) { this.parentId = parentId; } public String getParentIds() { return parentIds; } public void setParentIds(String parentIds) { this.parentIds = parentIds; } public Boolean getAvailable() { return available; } public void setAvailable(Boolean available) { this.available = available; } public boolean isRootNode() { return parentId == 0; } public String makeSelfAsParentIds() { return getParentIds() + getId() + "/"; } @Override public boolean equals(Object that) { // 1.判断一定相等 if(this == that) return true; // 2.判断一定不等 if(that == null || getClass() != that.getClass()) return false; // 3.判断可能相等的情况 Organization thatObj = (Organization) that; if(id==null ? thatObj.id !=null : !id.equals(thatObj.id)) return false; return true; } @Override public int hashCode() { return id == null ? 0 : id.hashCode(); } @Override public String toString() { return "Organization {" + "id=" + id + ", name='" + name + "'" + ", parentId=" + parentId + ", parentIds='" + parentIds + "'" + ", available=" + available + "}"; } }
The above is the detailed content of equals, hashCode, toString method rewriting. For more information, please follow other related articles on the PHP Chinese website!