Java 8:基于另一个枚举从一个枚举分配值

时间:2021-07-09 13:11:01

标签: java-8 enums

我有两个枚举如下:-

枚举类型:

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()

非常感谢任何帮助或建议。提前致谢:)

0 个答案:

没有答案