尝试执行此操作时出现“无法解决”错误:
class Tag{
public static final int blah = 1231;
}
enum Things{
COOL (Tag.blah, "blah"); //error here
}
编译器抱怨它无法在上面的行中找到Tag类。
答案 0 :(得分:3)
可见性可能是错误。您的类标签具有默认可见性,因此我猜您的枚举不在同一个包中。使用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) {
}
}
答案 1 :(得分:1)
以下完整的EnumTest.java
文件编译。我不确定你的问题是什么;没有足够的信息。
public class EnumTest {
class Boo {
static final int x = 42;
}
enum Things {
X(Boo.x);
Things(int x) { }
}
}
答案 2 :(得分:0)
您是否定义了COOL枚举的构造函数?您正在传递参数,但默认构造函数不接受任何参数。
答案 3 :(得分:0)
事实证明,错误只是我的愚蠢。
我指的是一个不存在的成员变量,(上面例子中的 blah )!所以它没有解决 Tag.blah !