本帖最后由 龙骑将杨影枫 于 2014-12-4 15:27 编辑
我举一个简单的例子来说明枚举类型的用法。
假设,我有一个给定的字符串集合(注意,是字符串集合) {“红”,"黑","蓝"},然后我想随机取一个颜色并给出判断,如果是红色,那么输出"this is red",其他颜色同理。
那么代码应该怎么写呢?
流程是String[] colors={“红","黑","蓝"},然后 int i=Math.random()*2.String color=colors
高潮来了,如何判断呢?
普通青年的写法是 if(color.equels("红")) syso("this is red")。
黑与蓝依次类推。
这是比较大众化而且非常实用的写法。
但是我作为一个文艺青年,我想换种方式写,比如用swich这个比较高效清晰的结构来写可以吗?
答案是不行,因为作为switch语句来说,是不能以String作为 判断值和表达式的。
比如switch(color)是会被Eclipse毙掉的,“无法编译”。(注:仅限于1.7之前的java版本,1.7已完美支持)
但是作为有着一颗2B心情的文艺青年,明知山有虎,偏向虎山行。此路不通我就绕路走。
于是我定义一个枚举
public enum ColorEnum {
RED("红"), BLUE("蓝色"),BLACK("黑色");
private final String color;
ColorEnum(String color) {
this.color = color;
}
public String getColor() {
return color;
}
}
然后我新建一个Demo测试类,在main方法里这么写。
ColorEnum[] temp =ColorEnum.values();
int i=(int) (Math.random()*2);
switch(temp){
case RED:
System.out.println("这是红色");
break;
case BLUE:
System.out.println("这是蓝色");
break;
case BLACK:
System.out.println("这是蓝色");
break;
}
大功告成,功德圆满,我终于可以继续做我的2B文艺青年,继续愉快的玩耍了。那啥青年欢乐多。
|