【发布时间】:2021-02-13 00:51:32
【问题描述】:
我正在查看来自here的这段代码:
enum Operator {
ADD {
@Override int execute(final int num1, final int num2) {
return num1 + num2;
}
},
SUBTRACT {
@Override int execute(final int num1, final int num2) {
return num1 - num2;
}
},
MULTIPLY {
@Override int execute(final int num1, final int num2) {
return num1 * num2;
}
},
DIVIDE {
@Override int execute(final int num1, final int num2) {
if (num2 != 0) {
return num1 / num2;
} else {
System.out.println("Can't divide by zero.");
}
return 0;
}
};
abstract int execute(int num1, int num2);
}
public class EnumWithoutDefinedFunctions {
public static void main(String[] args) {
int num1 = 10;
int num2 = 2;
Operator operator = Operator.DIVIDE;
int result = operator.execute(num1, num2);
System.out.println("result: " + result);
}
}
我正在寻找一种使用不同键调用相同方法的方法。例如,ADD 和 ADD2 都应该执行相同的实现即
ADD,ADD2 {
@Override int execute(final int num1, final int num2) {
return num1 + num2;
}
},
但是,上面对代码的更改会导致以下错误:
【问题讨论】:
标签: java java-8 enums simplify