当前位置:网站首页>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边栏推荐
- Practice: fabric user certificate revocation operation process
- Text组件新增内容通过tag_config设置前景色、背景色
- 科技云报道荣膺全球云计算大会“云鼎奖”2013-2022十周年特别贡献奖
- MySQL disconnection reports an error MySQL ldb_ exceptions. OperationalError 4031, The client was disconnected by the server
- Business learning of mall commodity module
- What changes has Web3 brought to the Internet?
- Leetcode simple question: find the nearest point with the same X or Y coordinate
- [agc009e] eternal average - conclusion, DP
- Pl/sql basic case
- Granularity of blocking of concurrency control
猜你喜欢
Meituan dynamic thread pool practice ideas, open source
ICMP introduction
Performance monitoring of database tuning solutions
AD637 usage notes
【愚公系列】2022年7月 Go教学课程 003-IDE的安装和基本使用
Practice: fabric user certificate revocation operation process
Decorator learning 01
Lightweight dynamic monitorable thread pool based on configuration center - dynamictp
数博会精彩回顾 | 彰显科研实力,中创算力荣获数字化影响力企业奖
Granularity of blocking of concurrency control
随机推荐
Form artifact
Database recovery strategy
Poj3414 extensive search
What if the files on the USB flash disk cannot be deleted? Win11 unable to delete U disk file solution tutorial
Summary of concurrency control
Character conversion PTA
MySQL disconnection reports an error MySQL ldb_ exceptions. OperationalError 4031, The client was disconnected by the server
K210学习笔记(四) K210同时运行多个模型
Win11 runs CMD to prompt the solution of "the requested operation needs to be promoted"
Codeforces 12D ball tree array simulation 3 sorting elements
Granularity of blocking of concurrency control
Damn, window in ie open()
Unique occurrence times of leetcode simple questions
Text组件新增内容通过tag_config设置前景色、背景色
What if win11 is missing a DLL file? Win11 system cannot find DLL file repair method
[agc009e] eternal average - conclusion, DP
Storage optimization of performance tuning methodology
A number of ventilator giants' products have been recalled recently, and the ventilator market is still in incremental competition
Performance monitoring of database tuning solutions
元宇宙中的三大“派系”