[英]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.