我在课堂外声明一个 ,如下所示:
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之外的访问修饰符来声明类外的枚举。
任何人都可以让我知道为什么会这样吗?我的代码出了什么问题? 将我的枚举“放在自己的文件中
是什么意思?答案 0 :(得分:3)
因为在同一个java文件中不能有两个公共类或枚举:
在你的代码中:
1. public class CoffeTest {
2. public enum CoffeeSize{
所以你需要在其他文件中移出一个:
答案 1 :(得分:3)
实际上,主要原因是您的文件名和公共类名称不同,因此您收到此错误。 java类必须只包含一个顶级类型,例如class,enum interface abstract等。如果你真的想在这个类中使用这个枚举,请删除公共访问修饰符,否则将其移动到新文件CoffeeSize.java ..希望这会有所帮助。
答案 2 :(得分:2)
要将枚举移动到自己的文件,请创建一个名为CoffeeSize.java
的新文件,然后将枚举代码放在那里。