java - 在某些特定情况下更喜欢编译时常量而不是枚举

标签 java enums

我正在阅读 J.Bloch 的 Effective Java 并提出以下内容(关于枚举的 Setcion):

Far fewer enums benefit from associating multiple behaviors with a single method. In this relatively rare case, prefer constant-specific methods to enums that switch on their own values

对我来说,这种使用编译时常量的情况并不清楚。您不能提供一个反射(reflect)这一点的简单示例吗?

最佳答案

我认为该段落中讨论的是以下内容之间的比较:

void myMethod(MyEnum enum){
    switch(enum){
    case VALUE1:
        break;
    case VALUE2:
        break;
    }
}

enum MyEnum{
VALUE1(){
    protected void myMethod(){
        //body
    }
},
VALUE2(){
    protected void myMethod(){
        //body
    }
}
protected abstract void myMethod();
}

关于java - 在某些特定情况下更喜欢编译时常量而不是枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32817531/

相关文章:

java - 通常,在应用程序的什么地方放置 SQL 查询?

java - 为什么这个正则表达式只匹配一次?

.net - Enum 支持 Entity Framework 数据库优先

java - StringTokenizer,忘记分隔符

java - Selenium 无法处理大表行数

Java Web 服务客户端 cdata 标签

enums - dart 分析器在我的枚举上产生错误

c# - Unity碰撞删除然后添加回来

c# - 在 C# 中将字符串转换为枚举

Scala - 枚举与案例类