
正文
【译】Java中的枚举
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
前言
译文链接:http://www.programcreek.com/2014/01/java-enum-examples/
Java中的枚举跟其它普通类很像,在其内部包含了一堆预先定义好的对象集合;
下面是若干个关于枚举的例子,可以帮助我们更好的使用枚举类型;
一个简单的例子package simplejava;enum Color {
RED, YELLOW, BLUE; // each is an instance of Color
}public class Q5 { public static void main(String[] args) {
for (Color color : Color.values()) {
System.out.println(color);
}
}
}
package simplejava;enum Color {
RED, YELLOW, BLUE; // each is an instance of Color
}public class Q5 { public static void main(String[] args) {
for (Color color : Color.values()) {
System.out.println(color);
}
}
}
结果输出:
RED
YELLOW
BLUE
调用构造方法package simplejava;enum Color {
RED(1), YELLOW(2), BLUE(3); // each is an instance of Color
private int value;
private Color(int i) {
this.value = i;
}
public void printValue(){
System.out.println(this.value);
}
}public class Q5 { public static void main(String[] args) {
for (Color color : Color.values()) {
color.printValue();
}
}
}
package simplejava;enum Color {
RED(1), YELLOW(2), BLUE(3); // each is an instance of Color
private int value;
private Color(int i) {
this.value = i;
}
public void printValue(){
System.out.println(this.value);
}
}public class Q5 { public static void main(String[] args) {
for (Color color : Color.values()) {
color.printValue();
}
}
}
结果打印:
1
2
3
什么时候使用枚举
Java中的枚举与普通类很像,内部包含了一堆预先定义好的对象集合;
一个比较好的使用场合是阻止无效参数,如下代码示例:
public void doSomethingWithColor(int color);
这是一个模棱两可的接口,其他开发人员根本不清楚往这个接口传入哪些参数,只知道是int类型;
举个例子,假如你有一个枚举类型Color,包含BLACK,RED两个对象集合,那么这个接口就变成这样:
public void doSomethingWithColor(Color color);
使用枚举类型,将大大增强代码的可读性,同时可以防止传入无效的参数;







