tdu*_*zik 1 java enums switch-statement
我有一个接口FailureReason,我想创建一个实现这个接口的枚举。所以我有这样的事情:
public enum RemoveSalonFailureReason implements FailureReason {
REASON_1, REASON_2;
}
Run Code Online (Sandbox Code Playgroud)
然后我想以这种方式使用它:
public class SalonManager {
public String removeSalon(Long salonId) {
// some code
FailureReason failureReason = result.getFailureReason();
switch (failureReason):
case REASON_1:
// do sth
break;
case REASON_2:
// do sth
break;
}
}
Run Code Online (Sandbox Code Playgroud)
但是我收到一个错误“不能转换为整数”。那么我该怎么做呢?是否可以进行FailureReason枚举?像enum FailureReason extends Enum或Enum<FailureReason> failureReason = result.getFailureReason()?
一个case语句不能在这里使用,因为不是所有的FailureReason都是enum秒。
备择方案:
Map<FailureReason,Thing>,查找并执行您的Thing.enum。enum工作 - 示例如下。示例3-
interface FailureReason {
public void doMyThing();
}
public enum RemoveSalonFailureReason implements FailureReason {
REASON_1 {
@Override
public void doMyThing() {
System.out.println("You failed!!!");
}
},
REASON_2 {
@Override
public void doMyThing() {
System.out.println("You failed AGAIN!!!");
}
};
}
Run Code Online (Sandbox Code Playgroud)
请不要求助于铸造。