当前位置:网站首页>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边栏推荐
- Leetcode simple question ring and rod
- About the writing method of SQL field "this includes" and "included in" strings
- Implementation technology of recovery
- 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
- Win11运行cmd提示“请求的操作需要提升”的解决方法
- Getting started with microservices (resttemplate, Eureka, Nacos, feign, gateway)
- Official clarification statement of Jihu company
- 极狐公司官方澄清声明
- 如何开发引入小程序插件
- Practice: fabric user certificate revocation operation process
猜你喜欢
Wonderful review of the digital Expo | highlight scientific research strength, and Zhongchuang computing power won the digital influence enterprise award
Dbeaver executes multiple insert into error processing at the same time
CA certificate trampled pit
每日刷题记录 (十四)
Three "factions" in the metauniverse
笔记本电脑蓝牙怎么用来连接耳机
Summary of concurrency control
Shell script, awk condition judgment and logic comparison &||
Oracle hint understanding
database mirroring
随机推荐
Win11运行cmd提示“请求的操作需要提升”的解决方法
数据泄露怎么办?'华生·K'7招消灭安全威胁
Form artifact
How to use tensorflow2 for cat and dog classification and recognition
Database recovery strategy
Stored procedures and stored functions
Shell script, awk uses if, for process control
Oracle hint understanding
Serializability of concurrent scheduling
Reptile practice
Pinctrl subsystem and GPIO subsystem
Cross end solutions to improve development efficiency
【愚公系列】2022年7月 Go教学课程 003-IDE的安装和基本使用
Huawei cloud modelarts text classification - takeout comments
Lightweight dynamic monitorable thread pool based on configuration center - dynamictp
The new content of the text component can be added through the tag_ Config set foreground and background colors
What changes has Web3 brought to the Internet?
Microservice link risk analysis
Create a virtual machine on VMware (system not installed)
Hysbz 2243 staining (tree chain splitting)