java - 为什么我无法将我的枚举声明为公共(public)枚举?

标签 java enums

我在类之外声明一个枚举,如下所示:

public enum CoffeeSize{SMALL, BIG, HUGE}

class Coffee{
    CoffeeSize size;
}

public class CoffeTest {
    public static void main(String[] args) {
        Coffee myCoffee = new Coffee();
        myCoffee.size = CoffeeSize.BIG;
    }
}

但是我在标记枚举“public”时遇到以下错误:

公共(public)类型 CoffeeSize 必须在其自己的文件中定义。

我记得在某处读过,我们可以使用除 private 和 protected 之外的访问修饰符在类外部声明枚举。

谁能告诉我为什么会发生这种情况?我的代码有什么问题吗? 让我的枚举“在自己的文件中”意味着什么?

最佳答案

实际上,主要原因是您的文件名和公共(public)类名不同,因此您收到此错误。 java 类必须包含一个顶级类型,例如类、枚举接口(interface)抽象等。如果您确实希望在此类中使用此枚举,请删除公共(public)访问修饰符,否则将其移动到新文件 CoffeeSize.java ..希望这会有所帮助。

关于java - 为什么我无法将我的枚举声明为公共(public)枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27393611/

相关文章:

python - 从枚举类获取值,其中枚举成员名称在 Python 中运行时已知

java - 无法在 Android Studio 2.0 中解析符号 R

java - 在两个不同的 html 表中显示从 GAE 数据存储中检索到的数据

java - 从同一工作簿 Selenium 的多个工作表中读取数据

java 设置条件以某个枚举值开始

C#:将特定枚举类型的数组作为 params object[] 参数传递

javascript - 将字符串从 Java .properties 文件安全地传递到由 JavaScript 处理的字符串

java - 将 JFrame 大小调整为 JLayeredPane 内的 JPanel

java - 枚举 - 静态和实例 block

Java 枚举初始化最佳实践