【发布时间】:2014-12-10 04:58:39
【问题描述】:
我正在声明一个枚举在类之外,如下所示:
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”时遇到以下错误:
公共类型 CoffeeSize 必须在其自己的文件中定义。
我记得在某处读过,我们可以在类之外使用私有和受保护以外的访问修饰符声明枚举。
谁能告诉我为什么会这样?我的代码有什么问题? 将我的枚举 “放在自己的文件中” 意味着什么?
【问题讨论】:
-
要么按照编译器告诉你的去做,把
CoffeeSize放到它自己的类文件(CoffeeSize.java)中或者移到Coffer类声明中... -
“我记得在某处读过书”——如果你发现这个“某处”是你所指的,我愿意打赌,它实际上并没有说出你认为的内容。
-
它与任何其他类或接口相同。如果你有一个顶级的
public class ABC并且它不在ABC.java中,javac不会喜欢它。枚举也是如此。