繁体   English   中英

Java枚举,静态类变量 - 为什么我不能这样做?

[英]Java enums, static class variables - why can't I do this?

当我尝试这样做时,我收到“无法解决”的错误:

class Tag{
   public static final int blah = 1231; 
}

enum Things{
    COOL (Tag.blah, "blah"); //error here
}

编译器抱怨它无法在上面的行中找到Tag类。

可见性可能是错误。 您的类标签具有默认可见性,因此我猜您的枚举不在同一个包中。 使用public class Tag

编辑:

这是从一个共同的外部类中编译的:

class Tag {
    public static final int blah = 1231;
}

enum Things {
    COOL(Tag.blah, "blah"); // error here

    private Things(final int i, final String s) {
    }
}

以下完整的EnumTest.java文件编译。 我不确定你的问题是什么; 没有足够的信息。

public class EnumTest {
    class Boo {
        static final int x = 42;
    }
    enum Things {
        X(Boo.x);
        Things(int x) { }
    }
}

你有没有定义COOL枚举的构造函数? 您正在传递参数,但默认构造函数不接受任何参数。

事实证明错误只是我的愚蠢。

我指的是一个不存在的成员变量(上面例子中的blah )! 所以它没有解决Tag.blah

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM