Home  >  Article  >  Java  >  equals, hashCode, toString method rewriting

equals, hashCode, toString method rewriting

(*-*)浩
(*-*)浩forward
2019-09-20 16:12:282527browse

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!

Statement:
This article is reproduced at:csdn.net. If there is any infringement, please contact admin@php.cn delete
Previous article:JAVA8 paging toolNext article:JAVA8 paging tool