首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

enum(switch)的有关问题

2012-01-01 
enum(switch)的问题!publicenumDirection{L,LU,U,RU,R,RD,D,LD,STOP}Directiondirswitch(dir){caseL:x-X

enum(switch)的问题!
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,谢谢!

[解决办法]
case 后面的enum的成员必须是unqualified,就是这样规定的,没有为什么。
[解决办法]
是啊,规定的 有什么办法 几象 int 为什么一定是int
[解决办法]
因为不需要这么写

switch (dir)
这个dir就已经明确是Direction 对象
所以下面case内容必须是Direction中的
如果写成Direction.L 会误解成可以写成Direction1.L Direction2.L之类的

就好像
int i = 1;
int j;
j = i;
而不用
j = (int)i;

热点排行