algorand / algorand/java-algorand-sdk
Correctness: Overriding equals, but not hashCode
- Vorherrschende Sprache
- Java
- Sterne
- 73
- Forks
- 71
- Ø Merge
- 41 Min.
- Gemergte PRs (30 T.)
- 2
Beschreibung
### 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.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Bewertung
Dieses Issue wurde noch nicht bewertet.