JDK1.5 才开始有枚举类型,同时可爱的 Java 组织丰富了 switch 语句:支持枚举。
定义一个枚举类 Color
public enum Color {
RED("red color", 0),
GREEN("green color", 1),
BLUE("blue color", 2),
YELLOW("yellow color", 3);
Color(String name, int id) {
_name = name;
_id = id;
}
private String _name;
private int _id;
public String getName() {
return _name;
}
public int getId() {
return _id;
}
public static Color getColor(int max) {
Random random = new Random(System.currentTimeMillis());
int num = random.nextInt(max);
switch (num) {
case 0:
return Color.RED;
case 1:
return Color.GREEN;
case 2:
return Color.BLUE;
case 3:
return Color.YELLOW;
default:
return Color.BLUE;
}
}
}
为 Color 提供了一个静态方法 getColor,可以随机获取颜色值。
那么,可以结合 switch 语句这样使用:
public static void main(String[] args) {
int len = Color.values().length;
Color color = Color.getColor(len);
switch (color) {
case RED:
System.out.println("select " + "RED");
break;
case GREEN:
System.out.println("select " + "GREEN");
break;
case BLUE:
System.out.println("select " + "BLUE");
break;
case YELLOW:
System.out.println("select " + "YELLOW");
break;
default:
System.out.println("select " + "unknow!!");
break;
}
}
可以看出,switch 语句中是 Color 对象。
------------------------------附录
完整代码
package mark.demo;
import java.util.Random;
public class EnumDemo {
public static void main(String[] args) {
int len = Color.values().length;
Color color = Color.getColor(len);
switch (color) {
case RED:
System.out.println("select " + "RED");
break;
case GREEN:
System.out.println("select " + "GREEN");
break;
case BLUE:
System.out.println("select " + "BLUE");
break;
case YELLOW:
System.out.println("select " + "YELLOW");
break;
default:
System.out.println("select " + "unknow!!");
break;
}
}
public enum Color {
RED("red color", 0),
GREEN("green color", 1),
BLUE("blue color", 2),
YELLOW("yellow color", 3);
Color(String name, int id) {
_name = name;
_id = id;
}
private String _name;
private int _id;
public String getName() {
return _name;
}
public int getId() {
return _id;
}
public static Color getColor(int max) {
Random random = new Random(System.currentTimeMillis());
int num = random.nextInt(max);
switch (num) {
case 0:
return Color.RED;
case 1:
return Color.GREEN;
case 2:
return Color.BLUE;
case 3:
return Color.YELLOW;
default:
return Color.BLUE;
}
}
}
}
转自:https://blog.csdn.net/veryitman/article/details/7947640