algorand / algorand/java-algorand-sdk
Correctness: Overriding equals, but not hashCode
- Lingua principale
- Java
- Stelle
- 73
- Fork
- 71
- Merge medio
- 41m
- PR unite (30g)
- 2
Descrizione
### Subject of the issue
While working on https://github.com/algorand/java-algorand-sdk/pull/340#discussion_r912043589, I observed numerous instances where `equals` is overwritten, but not `hashCode`.
The status quo breaks `hashCode`'s contract as discussed in https://stackoverflow.com/questions/2265503/why-do-i-need-to-override-the-equals-and-hashcode-methods-in-java.
### Your environment
N/A
### Steps to reproduce
N/A
### Expected behaviour
There's at least 2 solutions:
* Immediately - Consistently override `hashCode` and `equals`. Prefer using an IDE-generated implementation.
* Longer term - Upgrade to >= JDK 16 and replace class definitions with records (https://docs.oracle.com/en/java/javase/16/language/records.html). Among other benefits, records obviate the need to manage `equals` and `hashCode` implementations.
### Actual behaviour
N/A
# Acceptance Criteria
1. Updating hand written code to implement both functions.
2. Update code generator to generate hashCode along with equals, then regenerate the code.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Valutazione
Questa issue non è ancora stata valutata.