public enum Direction {L, LU, U, RU, R, RD, D, LD, STOP
}
Direction dir;
switch (dir) {
case L:
x -= XSPEED;
break;
case LU:
x -= XSPEED;
y -= YSPEED;
break;
case U:
y -= YSPEED;
break;
case RU:
x += XSPEED;
y -= YSPEED;
break;
case R:
x += XSPEED;
break;
case RD:
x += XSPEED;
y += YSPEED;
break;
case D:
y += YSPEED;
break;
case LD:
x -= XSPEED;
y += YSPEED;
break;
case STOP:
break;
}(此为整个程序的一小部分)我的问题是:case 后面的L,R,D,LD等为什么不能写成Direction.L,Direction.R,Direction.D,Direction.LD,谢谢!

解决方案 »

  1.   

    改成Direction.L后报错:枚举switch case标签必须为枚举常量的非限定名称
    就是必须不加前面那个Direction限定,java语言本身就是这样规定的.
      

  2.   

    可能就是这样吧,不过你要是不定义成enum ,直接定义成final的,就可以用了
    比方
    public class final d{
    public   static   final   int   L   =   0;   
    }
      

  3.   

    枚举类型本身的语法不用带枚举的标示。
    public enum Direction {L, LU, U, RU, R, RD, D, LD, STOP
    }
    Direction dir;
    switch dir 
      case l...