我定义了一个枚举。当我尝试写时:
private ENUM_NAME variableName;
作为类的实例变量,编译器告诉我:
cannot find symbol - class ENUM_NAME
这阻止了我继续。
我正在使用 BlueJ IDE,如果这很重要的话。 所有文件都包含在一个包中,并且位于我的计算机上的同一文件夹中。 我从另一个类(我的工作类的测试驱动程序)内的枚举开始,我在我的工作类中得到了所述错误。然后我尝试让枚举成为它自己的类,但我得到了同样的错误。
测试驱动程序类:
public class BicycleMainClass
{
enum BICYCLE_TYPE_ENUM {STANDARD, RACER, MOUNTAIN, BMX};
//main method below
}
“工作”阶层:
public class BicycleClass
{
private BICYCLE_TYPE_ENUM bicycleType;
//this line gives me the error "cannot find symbol - class BICYCLE_TYPE_ENUM"
}
我希望它能够正确编译,因为枚举是有效的变量类型。我不明白什么?
最佳答案
问题是您已将枚举类型声明为 nested type BicycleMainClass
,因此在引用它时需要包含外部类型:
class BicycleClass
{
private BicycleMainClass.BICYCLE_TYPE_ENUM bicycleType;
}
另一个解决方案是将您的枚举类型声明为 top-level type :
public enum BICYCLE_TYPE_ENUM {
STANDARD, RACER, MOUNTAIN, BMX;
}
然后就可以直接引用了:
private BICYCLE_TYPE_ENUM bicycleType;
关于java - 编译错误 "cannot find symbol - class ENUM_NAME",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56891994/