Maison  >  Article  >  Java  >  égal, hashCode, réécriture de la méthode toString

égal, hashCode, réécriture de la méthode toString

(*-*)浩
(*-*)浩avant
2019-09-20 16:12:282533parcourir

égal, hashCode, réécriture de la méthode toString

Règles de réécriture de la méthode égale

Le jugement doit être égal (référence cohérente)

Jugement Certainement pas égal (les types sont incohérents)

Le jugement peut être égal (besoin de forcer le transfert de l'objet actuel pour comparaison)

règles de réécriture du hashCode

Réécriture basée sur l'identifiant unique de l'objet actuel

S'il est vide, il renverra 0 directement. S'il n'est pas vide, il renverra le hashCode de l'identifiant unique.

Règle de réécriture toString, chaîne plus '' pour distinguer les non-chaînes

Nom de la classe + {field1=value1, field2=value2}

Par exemple : Person{id=123,name="tom"}

Par exemple :

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
				+ "}";
	}
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Article précédent:Outil de pagination JAVA8Article suivant:Outil de pagination JAVA8