java - 枚举常量中局部变量的范围

标签 java enums

我在枚举常量 block 内创建了一个局部变量,例如:

enum NUMBER {
    ONE() {
        int one = 1;
    },
    TWO() {
        int two = ONE.one + 1; //!ERROR: one can't be resolved.
    }
}

我的问题是为什么我不能引用其他常量的类字段变量?

它是一个类字段吗?

我知道的是,一和二是数字的字段,所以一可以看到二并访问二的字段,不是吗?

最佳答案

这不起作用,因为当您将其声明为

ONE () {
}

您正在声明一个新的匿名内部类。

但是,您可以在 NUMBER 枚举中声明一个字段,将其添加到 NUMBER 构造函数中,然后在常量中声明它,如下所示:

ONE(1), TWO(2)

因为枚举就像常规类一样并且允许这样的声明。

关于java - 枚举常量中局部变量的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22407539/

相关文章:

c# - 下拉列表的枚举描述值

Java算法

c# - 获取枚举值的属性

java - 微服务和maven结构

java - H2数据库可以查询包含不同记录组的多个部分的CSV文件吗?

java - java枚举器中的私有(private)构造函数

grails - Groovy/Grails - 使用枚举运行应用程序时出错

C Language : trouble using enumerated variable and type definited in main. c文件在另一个文件里面

java - 如何使用 AJAX、JQuery 和 Spring MVC 渲染 View

java - java MongoClient什么时候建立与DB的连接?