enum Direction {
L, LU, U, RU, R, RD, D, LD, STOP
};中间省略
Direction[] dirs = Direction.values();
values() 是什么方法 JDK上怎么没查到 是在lang.enum里面查吗
L, LU, U, RU, R, RD, D, LD, STOP
};中间省略
Direction[] dirs = Direction.values();
values() 是什么方法 JDK上怎么没查到 是在lang.enum里面查吗
楼主【myj870517】截止到2008-07-16 11:21:57的历史汇总数据(不包括此帖):
发帖的总数量:6 发帖的总分数:200 每贴平均分数:33
回帖的总数量:2 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:6 结贴的总分数:200
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:0.00 % 无满意结分率:0.00 %
敬礼!
b,a;
} static final class A extends Enum
{ public static A[] values()
{
A aa[];
int i;
A aa1[];
System.arraycopy(aa = ENUM$VALUES, 0, aa1 = new A[i = aa.length], 0, i);
return aa1;
} public static A valueOf(String s)
{
return (A)Enum.valueOf(com/taobao/et/biz/Test$A, s);
} public static final A b;
public static final A a;
private static final A ENUM$VALUES[]; static
{
b = new A("b", 0);
a = new A("a", 1);
ENUM$VALUES = (new A[] {
b, a
});
} private A(String s, int i)
{
super(s, i);
}
}
另外如果 dirs 不为空引用 null,还可以结合 switch 来简化程序代码,如下:if (dirs != null) {
switch (dirs) {
case L:
//...
break;
case LU:
//...
break;
case U:
//...
break;
case RU:
//...
break;
case R:
//...
break;
case RD:
//...
break;
case D:
//...
break;
case LD:
//...
break;
case STOP:
//...
break;
}
}另外你的枚举常量设置的有问题,STOP 是 Direction(方向)吗?你可以用 dirs = null 来表示静止不动的状态。
我说了,这个是不是enum里面的方法了啊。是编译器自动生成的。
两个静态方法“隐藏”在所有枚举类型声明中。
因为它们是枚举子类上的静态方法,而不是Enum本身的方法,所以它们在java.lang.Enum的javadoc中没有出现。
第一个是values(),返回一个枚举类型所有可能值的数组。
第二个是valueOf(String arg0),为提供的字符串返回一个枚举类型,该枚举类型必须精确地匹配源代码声明。