我在类之外声明一个枚举,如下所示:
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/