Ich suchte nach einer guten Methode, weil es schwierig war, den von Enum zu behandelnden Wert einmal mit String zu erhalten und zu konvertieren.
Bereiten Sie eine Aufzählung vor und schreiben Sie den Erfassungs- und Generierungsprozess mit "@ JsonValue" und "@ 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());
}
}
Definieren Sie Eigenschaften mithilfe des Aufzählungstyps für die in der Anforderung verwendete Bean.
Request.java
import EnvironmentType;
public class Request {
private EnvironmentType type;
public EnvironmentType getType() {
return type;
}
public void setType(EnvironmentType type) {
this.type = type;
}
}
Es war einfach, mit Jacksons Anmerkungen zu schreiben.
Recommended Posts