我已经定义了一个枚举。当我尝试写:
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"
}
我希望它可以编译而不会出错,因为枚举是有效的变量类型。我不明白什么?
答案 0 :(得分:2)
问题是您已将枚举类型声明为BicycleMainClass
的{{3}},因此在引用它时需要包括外部类型:
class BicycleClass
{
private BicycleMainClass.BICYCLE_TYPE_ENUM bicycleType;
}
另一种解决方案是简单地将您的枚举类型声明为nested type:
public enum BICYCLE_TYPE_ENUM {
STANDARD, RACER, MOUNTAIN, BMX;
}
然后您可以直接参考它:
private BICYCLE_TYPE_ENUM bicycleType;
答案 1 :(得分:0)
您需要为BICYCLE_TYPE_ENUM添加导入语句。 添加导入语句时,请确保使用正确的软件包名称。
答案 2 :(得分:0)
请尝试使用静态导入 用于嵌套枚举
或
尝试此私有BicycleMainClass.BICYCLE_TYPE_ENUM自行车类型;
希望这会有所帮助。