我在初始化一週的基本日期enum
時遇到問題。這裏是我的代碼:在初始化枚舉類型時遇到問題
public class Ch3_12
{
public static void main(String[] args)
{
public enum Day {MON, TUE, WED, THU, FRI, SAT, SUN}
}
}
我在初始化一週的基本日期enum
時遇到問題。這裏是我的代碼:在初始化枚舉類型時遇到問題
public class Ch3_12
{
public static void main(String[] args)
{
public enum Day {MON, TUE, WED, THU, FRI, SAT, SUN}
}
}
讀取錯誤消息編譯器爲您提供:
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...
}
你不能在方法中定義一個枚舉。
枚舉是靜態嵌套類,因爲它們定義了靜態成員變量(枚舉值),並且這對於內部類是不允許的。
的構件枚舉日只能頂層類或接口
可以前主初始化它裏面被定義()。
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 {
}
}
編譯器錯誤消息沒有幫助嗎? – Thilo