public class EnumLession16 {
public static void main(String[] args) {
WeekDay weekday=WeekDay.MON;     //在这行只要是引用到枚举类名的都提示错误,很迷惑啊
System.out.println(weekday.nextday());

public enum WeekDay{     //这里提示错误  The member enum WeekDay cannot be local
SUN,MON(){
public WeekDay nextday(){
return TUE;
}
},TUE,WED,THU,FRI,SAT;

private WeekDay(){
System.out.println("first2");
}
public abstract WeekDay nextday();
private int time;
private WeekDay(int day){
System.out.println("second");
}
}
public enum TrafficLamp{     //这里提示错误  The member enum TrafficLamp cannot be local
RED{
public TrafficLamp nextlamp(){
return GREEN;
}
},
GREEN{
public TrafficLamp nextlamp(){
return YELLOW;
}
},
YELLOW{
public TrafficLamp nextlamp(){
return RED;
}
};
public abstract TrafficLamp nextlamp();
} }}请各位高人帮忙批评指正

解决方案 »

  1.   

    你把枚举类都定义在main中干什么?
     
      

  2.   

    我现在用的是JDK1.4(开发项目时甲方规定),不支持枚举。
    我帮你改不了代码,请别人帮你改一下吧。
      

  3.   

    正解,枚举别写在方法中(不仅是main方法中)。
      

  4.   


    ==============================
    不只有这个问题,还有其它问题。看看他写的枚举吧:public enum WeekDay{     //这里提示错误  The member enum WeekDay cannot be local
                SUN,MON(){
                    public WeekDay nextday(){
                        return TUE;
                    }
                },TUE,WED,THU,FRI,SAT;
                
                private WeekDay(){
                    System.out.println("first2");
                }
                public abstract WeekDay nextday();
                private int time;
                private WeekDay(int day){
                    System.out.println("second");
                }
            }
      

  5.   

    先把 你两个enum 定义拿出来,单独用2个Java文件定义.其次SUN,MON(){
                    public WeekDay nextday(){
                        return TUE;
                    }
                },TUE,WED,THU,FRI,SAT;
    需要把SUN,TUE..等都实现nextday方法,不然会报错
      

  6.   

    public class EnumLession16 {
        public static void main(String[] args) {
            WeekDay weekday=WeekDay.MON;     
            System.out.println(weekday.nextday());
        }
        
        public enum WeekDay{    
            SUN {
    public WeekDay nextday() {
    return MON;
    }
    },
    MON(){
                public WeekDay nextday(){
                    return TUE;
                }
            },
            TUE {
    public WeekDay nextday() {
    return WED;
    }
    },
            WED {
    public WeekDay nextday() {
    return THU;
    }
    },
            THU {
    public WeekDay nextday() {
    return FRI;
    }
    },
            FRI {
    public WeekDay nextday() {
    return SAT;
    }
    },
            SAT {
    public WeekDay nextday() {
    return SUN;
    }
    };
            
            private WeekDay(){
                System.out.println("first2");
            }
            public abstract WeekDay nextday();
            private int time;
            private WeekDay(int day){
                System.out.println("second");
            }
        }
        public enum TrafficLamp{    
            RED{
                public TrafficLamp nextlamp(){
                    return GREEN;
                }
            },
            GREEN{
                public TrafficLamp nextlamp(){
                    return YELLOW;
                }
            },
            YELLOW{
                public TrafficLamp nextlamp(){
                    return RED;
                }
            };
            public abstract TrafficLamp nextlamp();
        }
    }
    改成这样或许会好一点,容易理解。