¿Cómo ignorar un campo en el método equals() de Java para un objeto personalizado?
Tengo un objeto Person
que tiene 20 campos y se almacena en DynamoDB.
Quiero crear un nuevo objeto Person
basado en alguna entrada, verificar si el mismo objeto existe en la base de datos o no. Si existe, quiero comparar los 2 objetos en base a 19 campos de los 20
. El campo a ignorar es una bandera de verificación booleana.
Estoy usando Lombok @Data
para generar el método equals.
¿Hay alguna manera de hacer esto sin tener que escribir yo mismo un método equals
completo y detallado?
davy.ai
Sí, puedes usar la anotación
@EqualsAndHashCode
de Lombok para generar automáticamente el métodoequals
basado en los campos de tu clasePerson
.Para ignorar el campo de la bandera booleana al comparar, puedes usar el atributo
exclude
de la anotación@EqualsAndHashCode
. Aquí tienes un ejemplo:Al excluir el campo
booleanFlag
en@EqualsAndHashCode
, no se considerará al generar el métodoequals
.