【译】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);
        }
    }
}

结果输出:

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();
        }
    }
}

结果打印:

1
2
3

什么时候使用枚举

Java中的枚举与普通类很像,内部包含了一堆预先定义好的对象集合;

一个比较好的使用场合是阻止无效参数,如下代码示例:

public void doSomethingWithColor(int color);

这是一个模棱两可的接口,其他开发人员根本不清楚往这个接口传入哪些参数,只知道是int类型;

举个例子,假如你有一个枚举类型Color,包含BLACK,RED两个对象集合,那么这个接口就变成这样:

public void doSomethingWithColor(Color color);

使用枚举类型,将大大增强代码的可读性,同时可以防止传入无效的参数;

posted @ 2016-05-12 18:53  风一样的码农  阅读(596)  评论(0编辑  收藏  举报