2015-10-30 67 views
0

我在初始化一週的基本日期enum時遇到問題。這裏是我的代碼:在初始化枚舉類型時遇到問題

public class Ch3_12 
{ 
    public static void main(String[] args) 
    { 
     public enum Day {MON, TUE, WED, THU, FRI, SAT, SUN} 

    } 
} 
+0

編譯器錯誤消息沒有幫助嗎? – Thilo

回答

3

讀取錯誤消息編譯器爲您提供:

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... 
} 
4

你不能在方法中定義一個枚舉。

枚舉是靜態嵌套類,因爲它們定義了靜態成員變量(枚舉值),並且這對於內部類是不允許的。

0

的構件枚舉日只能頂層類或接口

可以前主初始化它裏面被定義()。

1

Java中的成員枚舉必須定義爲只有在top-l evel類,接口或靜態上下文中。例如:

//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 { 

    } 
}