Java枚举类

2021-05-12  本文已影响0人  轻轻敲醒沉睡的心灵

在Java中,我们可以通过static final来定义常量。例如,我们希望定义周一到周日这7个常量,可以用7个不同的int表示:

public class Weekday {
    public static final int SUN = 0;
    public static final int MON = 1;
    public static final int TUE = 2;
    public static final int WED = 3;
    public static final int THU = 4;
    public static final int FRI = 5;
    public static final int SAT = 6;
}

使用常量的时候,可以这么引用:

if (day == Weekday.SAT || day == Weekday.SUN) {
    // TODO: work at home
}

也可以把常量定义为字符串类型,例如,定义3种颜色的常量:

public class Color {
    public static final String RED = "r";
    public static final String GREEN = "g";
    public static final String BLUE = "b";
}

使用常量的时候,可以这么引用:

String color = "red";
if (Color.RED.equals(color)) {
    // TODO:
}

1. 枚举

类似上面一些特殊业务的常量,可以用枚举来表示。枚举使用关键字enum

public enum Weekday {
    MON, TUE, WED, THU, FRI, SAT, SUN;
}
public enum Color {
    RED, GREEN, BLUE;
}

枚举类和其他类基本没什么区别,但有几点需要注意:

2. 枚举的用法

这里用一个最常用的来说明,在定义code和message的时候。
向枚举类中添加自定义属性和构造函数

 public enum CodeMsg {
    SUCCESS("1000", "success"),
    ERROR("4000", "error");
    
    @Getter
    private String code;
    @Getter
    private String msg;

    CodeMsg (String code, String msg) {
        this.code = code;
        this.msg = msg;
    }
 }

使用时:

public class Main {
    public static void main(String[] args) {
        System.out.println(CodeMsg.SUCCESS.getCode());
        System.out.println(CodeMsg.SUCCESS.getMsg());
    }
}
上一篇下一篇

猜你喜欢

热点阅读