algorand / algorand/java-algorand-sdk

Correctness: Overriding equals, but not hashCode

Abierto
#344 1 comentario 0 reacciones 0 asignados Ver en GitHub
bug good first issue Team Lamprey
Lenguaje dominante
Java
Estrellas
73
Forks
71
Merge medio
41 min
PR fusionados (30 d)
2

Descripción

### 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.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.