编译器错误“找不到符号-类ENUM_NAME”

时间:2019-07-04 16:58:26

标签: java enums

我已经定义了一个枚举。当我尝试写:

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"
}

我希望它可以编译而不会出错,因为枚举是有效的变量类型。我不明白什么?

3 个答案:

答案 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自行车类型;

希望这会有所帮助。