【发布时间】:2022-01-29 18:01:15
【问题描述】:
我有一个枚举,并想将一个静态函数附加到它,该函数接受该枚举大小写的参数并根据某些条件返回不同的字符串。但是,这会引发一堆错误,包括“枚举常量不允许使用修饰符”和“从枚举构造函数或实例初始化程序访问静态成员是非法的……”。如何正确地将静态函数附加到枚举?由于我的上下文,这似乎确实是最明智的放置位置。
示例代码:
public enum Operation {
SUM,
SUBTRACT,
PRODUCT,
DIVIDE,
public String display(Operation operation) {
if (operation == this.SUM) {
return "+";
} else if (operation == this.SUBTRACT) {
return "-";
} else if (operation == this.DIVIDE) {
return "/";
} else {
return "*";
}
}
}
【问题讨论】:
-
“将静态函数附加到枚举”是什么意思?你认为这种方法应该如何工作?现在看起来你只是想为每个枚举值分配一些符号,比如
+forSUM。您可以通过告诉枚举拥有private String symbol;,创建构造函数来为每个枚举值设置该符号,例如private Operation(String symbol){ this.symbol = symbol;},并创建像SUM("+")这样的值。还为该符号创建 getter,例如getSymbol(){ return symbol;}。这样您就可以拨打SUM.getSymbol()并获得"+"。
标签: java