nitesh kumar
Estoy usando la anotación Java lombok @Getter
para generar getters para mi POJO. tengo un boolean
campo por el nombre isAbc
.
El @Getter
anotación en este caso genera un método por el nombre isAbc()
. ¿No debería generar un método por el nombre isIsAbc()
?
Harald Gliebe
Lea la sección de ‘letra pequeña’ en la página de lombok https://projectlombok.org/features/GetterSetter.html
Para los campos booleanos que comienzan con es seguido inmediatamente por una letra de título, no se antepone nada para generar el nombre del captador.
Entonces, el comportamiento que experimenta es el especificado.
Tenga en cuenta que el comportamiento es diferente para boolean
y Boolean
:
@Getter
private boolean isGood; // => isGood()
@Getter
private boolean good; // => isGood()
@Getter
private Boolean isGood; // => getIsGood()
-
@serghey-bishyr, debe escribir su propia respuesta y no ampliar la existente.
– dieter
6 de marzo de 2017 a las 9:49
-
@dit mi respuesta no será diferente de la existente, solo con algunas notas adicionales.
– Sergio Bishyr
6 de marzo de 2017 a las 9:52
-
que pasa con los setters en estos casos
– whisky
4 de enero de 2018 a las 10:39
-
@whishky Para los setters, se ignora el prefijo “es”. Esto significa que el valor booleano privado es Bueno; // => establecerBueno()
– comintor
11 de enero de 2018 a las 17:20
-
@SergiiBishyr Gracias por mejorar la respuesta. Ese fue definitivamente el enfoque correcto.
–Dominic Cronin
9 oct 2020 a las 15:42
Kent Munthe Caspersen
Lombok no tiene prefijo con is
si el nombre ya empieza por is
seguido de una letra mayúscula como en isGood
.
Puede encontrar nombres como canDelete
que generará un getter con el nombre isCanDelete
. Para evitar esto puedes usar el fluent
parámetro:
@Getter(fluent = true)
private boolean canDelete;
o (dependiendo de la versión):
@Getter
@Accessors(fluent = true)
private boolean canDelete;
En cuyo caso, dejará el nombre tal como está para que el getter se convierta en canDelete()
.
Soleado
Hago algunas pruebas contra el lombok (1.16.8), y las conclusiones son las siguientes.
private Boolean good;
getter => getGood() Boolean
setter => setGood(Boolean good) void
private boolean good;
getter => isGood() boolean
setter => setGood(boolean good) void
private Boolean isGood;
getter => getIsGood() Boolean
setter => setIsGood() void
private boolean isGood;
getter => isGood() boolean
setter => setGood(boolean good) void
-
Cómo obligar a Lombok a generar isGood for getter en tipos no primitivos como
Boolean isGood
?– Andrés
2 de febrero a las 10:27
Es una vieja pregunta, pero mira si este tutorial sirve de algo: baeldung.com/lombok-getter-booleano
– Néstor Milyaev
6 de enero de 2022 a las 16:03