我有一个接口FailureReason
,我想创建一个实现此接口的枚举。所以我有这样的事情:
public enum RemoveSalonFailureReason implements FailureReason {
REASON_1, REASON_2;
}
然后,我想以这种方式使用它:
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;
}
}
但是我收到一个错误“不能转换为整数”。那我该怎么做呢?是否可以使
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!!!");
}
};
}
请不要诉诸铸造。