我有两个枚举如下:-
枚举类型:
public enum Type {
ABC(Constants.ABC),
DEF(Constants.DEF),
GHI(Constants.GHI);
public static class Constants {
public static final String ABC = "ABC";
public static final String DEF = "DEF";
public static final String GHI = "GHI";
}
private String value;
Type(String value) {
this.value = value;
}
@Override
public String toString() {
return value;
}
@JsonCreator
public static Type forValue(String value) {
return Arrays.stream(Type.values())
.filter(entry -> entry.getValue().equals(value))
.findFirst()
.orElse(null);
}
@JsonValue
public String getValue() {
return value;
} }
枚举值:-
public enum Value {
ABC(Constants.ABC),
DEF(Constants.DEF),
GHI(Constants.GHI);
public static class Constants {
public static final String ABC = "a_b_c";
public static final String DEF = "d_e_f";
public static final String GHI = "g_h_i";
}
private String value;
Value(String value) {
this.value = value;
}
@Override
public String toString() {
return value;
}
@JsonCreator
public static Value forValue(String value) {
return Arrays.stream(Value.values())
.filter(entry -> entry.getValue().equals(value))
.findFirst()
.orElse(null);
}
@JsonValue
public String getValue() {
return value;
} }
我想要做的是从 Type 枚举中找到“类型”,然后从 Value 枚举中分配值。
我有以下代码,但它抛出空指针异常。我知道为什么它会抛出空指针异常,但是我正在努力通过从 Value 枚举中分配相应的“值”来实现我想要的-
String value = Value.forValue(Type.forValue("ABC").getValue()).getValue()
非常感谢任何帮助或建议。提前致谢:)