java-8 - Java 8:基于另一个枚举从一个枚举分配值
问题描述
我有两个枚举如下: -
枚举类型:
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 Enum 中找到“类型”,然后从Value Enum 中赋值。
我有以下代码,但它引发空指针异常。我知道为什么它会抛出空指针异常,但我正在努力通过从Value Enum分配相应的“值”来实现我想要的-
String value = Value.forValue(Type.forValue("ABC").getValue()).getValue()
非常感谢任何帮助或建议。提前致谢 :)
解决方案
推荐阅读
- go - 为什么用两种方式转换相同的值,结果却不同?
- reactjs - 如何在一台服务器上进行strapi + react全栈应用程序?
- c# - 如何在组合框的值更改后禁用然后启用两个组框中的所有控件
- xcode - 启动 iOS 模拟器时,它会立即关闭,但仍会在后台运行
- sql-server - 如何创建将 XML 数据与另一个表进行比较的查询?
- python - 执行高斯回归时出错。如何解决?
- html - 变换:scale() 改变相对父级
- python - 如何在python中从csv文件映射到另一个文件?
- perl - 如何使用 perl 使用 YAML::Tiny 或其他方式修改 YAML 文件值?
- javascript - 角材料排序,无法设置未定义的属性“排序”