您的位置:首页 > 编程语言 > Java开发

Java 枚举:switch 支持枚举

2012-09-05 18:04 197 查看
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; } } }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: