gpt4 book ai didi

java - Java接口(interface)的switch语句

转载 作者:行者123 更新时间:2023-11-29 07:35:54 25 4
gpt4 key购买 nike

我有一个接口(interface) FailureReason我想创建一个实现此接口(interface)的枚举。所以我有这样的东西:

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 EnumEnum<FailureReason> failureReason = result.getFailureReason()

最佳答案

A case语句不能在这里使用,因为不是所有FailureReasonenum

备选方案:

  1. 使用 Map<FailureReason,Thing> ,查找并执行您的 Thing .
  2. 只使用一个enum .
  3. 制作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!!!");
}
};
}

请不要诉诸转换。

关于java - Java接口(interface)的switch语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35848900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com