Lombok: [FUNCIÓN] @FromEnum (Enum.class)

Creado en 15 mar. 2020  ·  3Comentarios  ·  Fuente: projectlombok/lombok

Característica Descripción
Clase generada con campos basados ​​en Enum
Esta solicitud de feater aparece en mi pregunta en StackOverflow

Básicamente, esa característica permitiría crear una clase con campos de la clase enum y si se establecen @Data o @Setter y @Getters , marque esos campos como privet y genere setters y getter para ellos

Prototipo de código de uso:
Definición

public enum JwtFields {
    userId,
    country,
    sessionId,
    anyOtherField
}
@FromEnum(JwtFields.class)
<strong i="19">@Data</strong>
public class JwtDeserialised {
    private String someAdditionalCutomFieldIfIwant
}

Uso:

String userId = jwtDeserialisedInstance.getUserId(); 
String anyOtherField = jwtDeserialisedInstance.getAnyOtherField();
String someAdditionalCutomFieldIfIwant = jwtDeserialisedInstance.GetSomeAdditionalCutomFieldIfIwant();

Público objetivo
Cualquiera que use Enums como claves para evitar escribir mal las cadenas y luego necesite deserializar esa enumeración en la clase adecuada con sets y gets.

Comentario más útil

¿Por qué no tomar la dirección opuesta: definir sus campos en la clase y usar @FieldNameConstants(asEnum = true) para generar su enumeración?

Todos 3 comentarios

¿Por qué no tomar la dirección opuesta: definir sus campos en la clase y usar @FieldNameConstants(asEnum = true) para generar su enumeración?

Hemos implementado esto, pero como mostró @janrieke , en la dirección opuesta: Cree la clase (y no una enumeración que nombre los 'campos').

Tenga en cuenta también que la forma en que desea implementarlo requiere resolución , es decir, es una característica extremadamente compleja.

¡Gracias chicos! ¡Impresionante! ¡Otra forma de hacerlo también se adapta perfectamente a mí!
No lo vi en la documentación, ¡pero ahora lo encontré en experimental! ¡Muy buena característica y definitivamente merece estar en la característica principal bastante experimental!

¿Fue útil esta página
0 / 5 - 0 calificaciones