小卜java

JAVA基础之枚举Enum

2021-12-11  本文已影响0人  汤太咸啊
  1. 我整理了一些Enum的小例子,第一个是比较简单的,基本的枚举类型
public enum FlightCrowJob {
//先后顺序,越靠后,默认越大,因此POLIT值最大
    FLIGHT_ATTENDANT,
    COPOLIT,
    POLIT;
    public static void main(String[] args) {
        for (int i = 0; i < FlightCrowJob.values().length; i++) {
            System.out.println("每一个:"+FlightCrowJob.values()[i]);
        }
        System.out.println("转换为Enum:"+FlightCrowJob.valueOf("COPOLIT"));
        System.out.println("比大小:"+FlightCrowJob.POLIT.compareTo(FlightCrowJob.COPOLIT));
    }
}
//输出
每一个:FLIGHT_ATTENDANT
每一个:COPOLIT
每一个:POLIT
转换为Enum:COPOLIT
比大小:1
  1. 这个增加了一个自定义的名字。switch支持Enum
public enum FlightCrowJob {
    FLIGHT_ATTENDANT("Flight Attendant"),
    COPOLIT("First officer"),
    POLIT("Captain");
    private String title;

    public String getTitle() {
        return title;
    }

    FlightCrowJob(String title) {
        this.title = title;
    }

    public static void main(String[] args) {
        System.out.println(FlightCrowJob.POLIT.getTitle()+" "+FlightCrowJob.POLIT.name());
        switch (FlightCrowJob.POLIT) {
    case POLIT:
        System.out.println("Pilot");
        break;
    case COPOLIT:
        System.out.println("Copolit");
        break;
    case FLIGHT_ATTENDANT:
        System.out.println("Attendant");
        break;
}
    }
}
//输出
Captain POLIT
Pilot
  1. 后边这个略微复杂点,增加了id,名字以及具体如何使用的方式,通过Rest接口调用,直接创建的几种方式
public enum Color {
    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
    // 成员变量
    private String name;
    private int id;
    // 构造方法
    private Color(String name, int id) {
        this.name = name;
        this.id = id;
    }
    // 普通方法
    public static String getName(int id) {
        for (Color c : Color.values()) {
            if (c.getId() == id) {
                return c.name;
            }
        }
        return null;
    }
    // get set 方法
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
}
  1. Controller的Get方式请求,注意传递的枚举的方式
@GetMapping(value = "/test")
    public Res test(@RequestParam Color color) throws Exception{
        logger.info("count==="+color.getName());
        return new Res();
}
//实际通过color=RED就可以正确的传递枚举,对应上就好了RED("红色", 1)
http://127.0.0.1:9081/v2/test?color=RED
  1. 创建也容易,通过valueOf或者直接Color.RED就行
    public static void main(String[] args) {
        Color color = Color.valueOf("RED");
        System.out.println(color.getName());
        Color color1 = Color.RED;
        System.out.println(color1.getName());
        //由于我没有重写equals方式,所以目前是等价的,重写了就需要按照自定义的来判断了
        System.out.println(color==color1);
        System.out.println(color.equals(color1));
    }
//输出
红色
红色
true
true
上一篇 下一篇

猜你喜欢

热点阅读