当前位置:网站首页>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边栏推荐
- 微服务链路风险分析
- How to organize an actual attack and defense drill
- Some tutorials install the database on ubantu so as not to occupy computer memory?
- Wonderful review of the digital Expo | highlight scientific research strength, and Zhongchuang computing power won the digital influence enterprise award
- Cobaltstrike builds an intranet tunnel
- Shell script, awk condition judgment and logic comparison &||
- Promql demo service
- What changes has Web3 brought to the Internet?
- 如何向mongoDB中添加新的字段附代码(全)
- Practice: fabric user certificate revocation operation process
猜你喜欢

K210学习笔记(四) K210同时运行多个模型

Win11缺少dll文件怎么办?Win11系统找不到dll文件修复方法

Bitbucket installation configuration

A trip to Suzhou during the Dragon Boat Festival holiday

Decorator learning 01

The simple problem of leetcode is to split a string into several groups of length K

Common interview questions of redis factory

The American Championship is about to start. Are you ready?

Type of fault

AD637使用笔记
随机推荐
Leetcode simple question: find the nearest point with the same X or Y coordinate
Three "factions" in the metauniverse
Evolution of large website architecture and knowledge system
【愚公系列】2022年7月 Go教学课程 003-IDE的安装和基本使用
【愚公系列】2022年7月 Go教学课程 004-Go代码注释
Analyse des risques liés aux liaisons de microservices
Win11 runs CMD to prompt the solution of "the requested operation needs to be promoted"
数据泄露怎么办?'华生·K'7招消灭安全威胁
AD637使用筆記
Database recovery strategy
2022-07-05: given an array, you want to query the maximum value in any range at any time. If it is only established according to the initial array and has not been modified in the future, the RMQ meth
Oracle views the data size of a table
A number of ventilator giants' products have been recalled recently, and the ventilator market is still in incremental competition
Interprocess communication in the "Chris Richardson microservice series" microservice architecture
What changes has Web3 brought to the Internet?
Leetcode simple question: check whether each row and column contain all integers
Type of fault
CRM creates its own custom report based on fetch
How to use tensorflow2 for cat and dog classification and recognition
2022-07-05:给定一个数组,想随时查询任何范围上的最大值。 如果只是根据初始数组建立、并且以后没有修改, 那么RMQ方法比线段树方法好实现,时间复杂度O(N*logN),额外空间复杂度O(N*