Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用枚举将默认值设置为“不合格”_Java_Enums_Java 8 - Fatal编程技术网

Java 使用枚举将默认值设置为“不合格”

Java 使用枚举将默认值设置为“不合格”,java,enums,java-8,Java,Enums,Java 8,我有以下处理EligibilityType的代码: public enum EligibilityType { E (EligibilityTypeEnum.ELIGIBLE), I (EligibilityTypeEnum.INELIGIBLE); private final EligibilityTypeEnum eligibilityTypeEnum; private EligibilityType(EligibilityTypeEnum eligib

我有以下处理EligibilityType的代码:

public enum EligibilityType {

    E (EligibilityTypeEnum.ELIGIBLE),
    I (EligibilityTypeEnum.INELIGIBLE);

    private final EligibilityTypeEnum eligibilityTypeEnum;

    private EligibilityType(EligibilityTypeEnum eligibilityTypeEnum) {
        this.eligibilityTypeEnum = eligibilityTypeEnum;
    }

    public EligibilityTypeEnum toEligibilityTypeEnum() {
        return eligibilityTypeEnum;
    }
}
我了解到,所有不属于“E”值的内容都应该设置为
EligibilityTypeEnum.Inqualify

我这样称呼它:

...
List<Workout> workouts = workoutResults.getWorkout();
for(int i = 0; i< workouts.size(); ++i) {
    ...
    stin.getWorkouts().get(i).setEligibilityType(EligibilityType.valueOf(workouts.get(i).getRecommendation()).toEligibilityTypeEnum());
    ...
}
。。。
列出训练=workoutResults.getWorkout();
对于(int i=0;i
现在,如果
workouts.get(i).getRecommension()
返回“C”,代码就会爆炸

除了“尝试捕获”之外,有没有其他方法可以实现这一点


有没有办法在enum中设置默认值?

您可以在
EligibilityType
中拥有一个包含所有可能值的映射

public static final Map<String, EligibilityType> ALL_MAP = Arrays.stream(values())
            .collect(Collectors.toMap(Enum::toString, Function.identity()));
EligibilityType.ALL_MAP.getOrDefault(someString, EligibilityType.DEFAULT)