当前位置:网站首页>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边栏推荐
- POJ 3237 tree (tree chain splitting)
- Draw a red lantern with MATLAB
- The American Championship is about to start. Are you ready?
- CA certificate trampled pit
- Interview questions for famous enterprises: Coins represent a given value
- Lightweight dynamic monitorable thread pool based on configuration center - dynamictp
- 【愚公系列】2022年7月 Go教学课程 003-IDE的安装和基本使用
- Three "factions" in the metauniverse
- ICMP introduction
- 数博会精彩回顾 | 彰显科研实力,中创算力荣获数字化影响力企业奖
猜你喜欢

Analysis of the problem that the cookie value in PHP contains a plus sign (+) and becomes a space

A substring with a length of three and different characters in the leetcode simple question

Leetcode simple question check whether all characters appear the same number of times

Promql demo service

Practice: fabric user certificate revocation operation process

MySQL disconnection reports an error MySQL ldb_ exceptions. OperationalError 4031, The client was disconnected by the server

Shell script, awk uses if, for process control

CA certificate trampled pit

Nacos 的安装与服务的注册

Serializability of concurrent scheduling
随机推荐
MySQL actual combat 45 lecture learning (I)
ICMP introduction
IIC bus realizes client device
Type of fault
Basic grammar of interview (Part 1)
boundary IoU 的计算方式
Shell script, awk uses if, for process control
Official clarification statement of Jihu company
Leetcode simple question: check whether each row and column contain all integers
Oracle advanced query
Concurrency control of performance tuning methodology
1.3 years of work experience, double non naked resignation agency face-to-face experience [already employed]
Lightweight dynamic monitorable thread pool based on configuration center - dynamictp
AD637使用笔记
Hysbz 2243 staining (tree chain splitting)
K210 learning notes (IV) k210 runs multiple models at the same time
FBO and RBO disappeared in webgpu
Code bug correction, char is converted to int high-order symbol extension, resulting in changes in positivity and negativity and values. Int num = (int) (unsigned int) a, which will occur in older com
Huawei cloud modelarts text classification - takeout comments
Draw a red lantern with MATLAB