【问题标题】:Compiler error "cannot find symbol - class ENUM_NAME" [duplicate]编译器错误“找不到符号 - 类 ENUM_NAME”[重复]
【发布时间】:2019-07-04 16:58:26
【问题描述】:

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

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

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

【问题讨论】:

    标签: java enums


    【解决方案1】:

    问题是你已经将你的枚举类型声明为nested typeBicycleMainClass,所以在引用它时需要包含外部类型:

    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;
    

    【讨论】:

      【解决方案2】:

      您需要为 BICYCLE_TYPE_ENUM 添加导入语句。 请确保在添加导入语句时使用正确的包名称。

      【讨论】:

        【解决方案3】:

        请尝试静态导入 对于嵌套枚举

        试试这个private BicycleMainClass.BICYCLE_TYPE_ENUM 自行车类型;

        希望这会有所帮助..

        【讨论】:

          猜你喜欢
          • 2013-01-03
          • 2013-03-08
          • 2012-08-27
          • 2014-07-01
          • 1970-01-01
          • 2018-04-23
          • 1970-01-01
          • 2011-04-23
          • 1970-01-01
          相关资源
          最近更新 更多