为什么我无法将我的枚举声明为公众?

时间:2014-12-10 04:58:40

标签: 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;
    }
}

但我在判断enum“public”时遇到以下错误:

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

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

任何人都可以让我知道为什么会这样吗?我的代码出了什么问题? 将我的枚举“放在自己的文件中

是什么意思?

3 个答案:

答案 0 :(得分:3)

因为在同一个java文件中不能有两个公共类或枚举:

在你的代码中:
1. public class CoffeTest {
2. public enum CoffeeSize{

所以你需要在其他文件中移出一个:

答案 1 :(得分:3)

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

答案 2 :(得分:2)

要将枚举移动到自己的文件,请创建一个名为CoffeeSize.java的新文件,然后将枚举代码放在那里。