我在初始化一周的基本enum
天时遇到了问题。这是我的代码:
public class Ch3_12
{
public static void main(String[] args)
{
public enum Day {MON, TUE, WED, THU, FRI, SAT, SUN}
}
}
答案 0 :(得分:4)
您无法在方法中定义枚举。
枚举是静态嵌套类,因为它们定义静态成员变量(枚举值),内部类不允许这样做。
答案 1 :(得分:4)
阅读编译器提供给您的错误消息:
public static void main(String[] args)
{
public enum Day {MON, TUE, WED, THU, FRI, SAT, SUN}
^^^^^^ Modifier "public" not allowed here
}
...所以你删除了修饰符:
public static void main(String[] args)
{
enum Day {MON, TUE, WED, THU, FRI, SAT, SUN}
^^^^^^^^ enum must not be local
}
...所以你将它移出方法范围:
enum Day {MON, TUE, WED, THU, FRI, SAT, SUN}
public static void main(String[] args)
{
// no more compiler errors...
}
答案 2 :(得分:1)
Java中的成员枚举必须在顶级类,接口或静态上下文中定义 。例如:
//nested within a class
class TopLevel {
enum MyEnum { }
}
//nested within an interface
interface Interface {
enum MyEnum { }
}
请注意,在这两种情况下,默认情况下MyEnum
隐式static
。
附注:与枚举不同,您可以在方法中嵌套类,这些类称为本地类。这实际上只适用于类,但不适用于接口和枚举:
public static void main(String[] args) {
class NestedMethodClass {
}
}
答案 3 :(得分:0)
成员枚举日只能在顶级类或接口
中定义
您可以在main()之前初始化它。