algorand / algorand/java-algorand-sdk

Correctness: Overriding equals, but not hashCode

Aperta
#344 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
bug good first issue Team Lamprey
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.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.