当前位置:网站首页>Overriding equals() & hashCode() in sub classes … considering super fields
Overriding equals() & hashCode() in sub classes … considering super fields
2022-07-05 22:16:00 【Superior virtue and weak water】
problem :
Is there a specific rule on how Overriding equals()
& hashCode()
in sub classes considering super fields ?? in consideration of Super field , Is there a question about how to In subclass rewrite equals()
and hashCode()
Specific rules for ?knowing that there is many parameters : super fields are private/public , with/without getter ... I know there are many parameters : Super fields are private / Public , Yes / nothing getter ...
For instance, Netbeans generated equals() & hashCode() will not consider the super fields ... and for example ,Netbeans Generated equals()&hashCode() Super fields will not be considered ... and
new HomoSapiens("M", "80", "1.80", "Cammeron", "VeryHot").equals( new HomoSapiens("F", "50", "1.50", "Cammeron", "VeryHot"))
will return true :( Will return true :(
public class Hominidae { public String gender; public String weight; public String height; public Hominidae(String gender, String weight, String height) { this.gender = gender; this.weight = weight; this.height = height; } ... }public class HomoSapiens extends Hominidae { public String name; public String faceBookNickname; public HomoSapiens(String gender, String weight, String height, String name, String facebookId) { super(gender, weight, height); this.name = name; this.faceBookNickname = facebookId; } ... }
If you want to see the Netbeans generated equals() & hashCode() : If you want to see Netbeans Generated equals() and hashCode():
public class Hominidae { ... @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final Hominidae other = (Hominidae) obj; if ((this.gender == null) ? (other.gender != null) : !this.gender.equals(other.gender)) { return false; } if ((this.weight == null) ? (other.weight != null) : !this.weight.equals(other.weight)) { return false; } if ((this.height == null) ? (other.height != null) : !this.height.equals(other.height)) { return false; } return true; } @Override public int hashCode() { int hash = 5; hash = 37 * hash + (this.gender != null ? this.gender.hashCode() : 0); hash = 37 * hash + (this.weight != null ? this.weight.hashCode() : 0); hash = 37 * hash + (this.height != null ? this.height.hashCode() : 0); return hash; }}public class HomoSapiens extends Hominidae { ... @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final HomoSapiens other = (HomoSapiens) obj; if ((this.name == null) ? (other.name != null) : !this.name.equals(other.name)) { return false; } if ((this.faceBookNickname == null) ? (other.faceBookNickname != null) : !this.faceBookNickname.equals(other.faceBookNickname)) { return false; } return true; } @Override public int hashCode() { int hash = 7; hash = 89 * hash + (this.name != null ? this.name.hashCode() : 0); hash = 89 * hash + (this.faceBookNickname != null ? this.faceBookNickname.hashCode() : 0); return hash; }}
Solution :
Reference resources : https://stackoom.com/en/question/8fhN边栏推荐
- 854. String BFS with similarity K
- Shell script, awk condition judgment and logic comparison &||
- Some tutorials install the database on ubantu so as not to occupy computer memory?
- POJ 3237 tree (tree chain splitting)
- Pl/sql basic case
- Reptile practice
- The statistics of leetcode simple question is the public string that has appeared once
- Basic grammar of interview (Part 1)
- Huawei cloud modelarts text classification - takeout comments
- Talking about MySQL index
猜你喜欢
Leetcode simple question: check whether each row and column contain all integers
Damn, window in ie open()
Database recovery strategy
Technology cloud report won the special contribution award for the 10th anniversary of 2013-2022 of the "cloud Ding Award" of the global cloud computing conference
Implementation technology of recovery
"Chris Richardson microservices series" uses API gateway to build microservices
Type of fault
The real situation of programmers
Create a virtual machine on VMware (system not installed)
Technology cloud report: how many hurdles does the computing power network need to cross?
随机推荐
AD637 usage notes
Blocking of concurrency control
Basic grammar of interview (Part 1)
Oracle triggers
Lightweight dynamic monitorable thread pool based on configuration center - dynamictp
Image editor for their AutoLayout environment
Calculation method of boundary IOU
科技云报道:算力网络,还需跨越几道坎?
AD637使用筆記
Granularity of blocking of concurrency control
Sentinel production environment practice (I)
Shell script, awk condition judgment and logic comparison &||
Leetcode simple question check whether all characters appear the same number of times
Decorator learning 01
IIC bus realizes client device
Bitbucket installation configuration
How to add new fields to mongodb with code (all)
Search: Future Vision (moving sword)
AD637使用笔记
Pl/sql basic case