Je cherchais une bonne méthode car il était difficile d'obtenir une fois la valeur à gérer par Enum avec String et de la convertir.
Préparez Enum et écrivez le processus d'acquisition et de génération en utilisant @ JsonValue et @ JsonCreator.
EnvironmentType.java
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.stream.Stream;
public enum EnvironmentType {
    PRODUCTION(1),
    STAGE(2),
    DEVELOP(3);
    private int value;
    EnvironmentType(int value) {
        this.value = value;
    }
    @JsonValue
    public int getValue() {
        return value;
    }
    @JsonCreator
    public static EnvironmentType create(Integer value) {
        if (value == null) {
            return null;
        }
        return Stream.of(values())
                .filter(v -> value.equals(v.getValue()))
                .findFirst()
                .orElseThrow(() -> new IllegalArgumentException());
    }
}
Définissez les propriétés à l'aide du type Enum pour le bean utilisé dans la demande.
Request.java
import EnvironmentType;
public class Request {
    private EnvironmentType type;
    public EnvironmentType getType() {
        return type;
    }
    public void setType(EnvironmentType type) {
        this.type = type;
    }
}
C'était facile d'écrire en utilisant les annotations de Jackson.
Recommended Posts