enum

1. 定义在类内部的枚举类型

public class qq {

    public static void main(String[] args) throws ParseException {
        System.out.println(Color.BLACK.id);
        System.out.println(Color.BLACK.name);
        System.out.println(Color.BLACK.desc);
    }

    public enum Color {
        RED(1, "red", "红色"), BLACK(2, "black", "黑色"), BLUE(3, "blue", "蓝色");

        private int id;
        private String name;
        private String desc;

        private Color(int id, String name, String desc) {
            this.id = id;
            this.name = name;
            this.desc = desc;
        }
    }

}

# 上面代码的输出结果为:

2
black
黑色

# 需要注意的关键地方:

* 构造方法private

* 定义在类内部的枚举类型可以直接通过它的属性获取值

 2. 定义在类外部的枚举类型

public class qq {

    public static void main(String[] args) throws ParseException {
        System.out.println(Color.BLACK.getId());
        System.out.println(Color.BLACK.getName());
        System.out.println(Color.BLACK.getDesc());
    }

}

public enum Color {

    RED(1, "red", "红色"), BLACK(2, "black", "黑色"), BLUE(3, "blue", "蓝色");

    private int id;
    private String name;
    private String desc;

    private Color(int id, String name, String desc) {
        this.id = id;
        this.name = name;
        this.desc = desc;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getDesc() {
        return desc;
    }

}

# 需要注意的关键地方:

* 通过get方法获取值

3. 遍历

public class qq {

    public static void main(String[] args) throws ParseException {
        for (Color color : Color.values()) {
            System.out.println(color.getId());
        }
        System.out.println(Color.existId(1));
    }

}

public enum Color {

    RED(1, "red", "红色"), BLACK(2, "black", "黑色"), BLUE(3, "blue", "蓝色");

    private int id;
    private String name;
    private String desc;

    private Color(int id, String name, String desc) {
        this.id = id;
        this.name = name;
        this.desc = desc;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getDesc() {
        return desc;
    }

    public static boolean existId(int id) {
        for (Color color : values()) {
            if (color.getId() == id) {
                return true;
            }
        }
        return false;
    }
}

# 上面代码的输出结果为:

1
2
3
true

# 需要注意的地方:

enum 的内置方法 values()

原文地址:https://www.cnblogs.com/lwmp/p/10606209.html