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