美文网首页
Java枚举类

Java枚举类

作者: 轻轻敲醒沉睡的心灵 | 来源:发表于2021-05-12 18:15 被阅读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;
}

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

  • 每个枚举的值都是当前class实例(RED 的类型是 Color)
  • 定义的enum类型总是继承自java.lang.Enum,且无法被继承(因枚举类是final的);
  • 只能定义出enum的实例,而无法通过new操作符创建enum的实例;
  • 定义的每个实例都是引用类型的唯一实例;
  • 枚举类实例的方法:
    • name():返回常量名,String s = Weekday.SUN.name(); // "SUN"
    • ordinal():返回定义的常量的顺序,从0开始计数,int n = Weekday.MON.ordinal(); // 1

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

相关文章

  • 枚举学习

    java enum枚举类 enum(枚举)类介绍 **java枚举类是一组预定义常量的集合,使用enum关键字声明...

  • Java枚举

    Java中的每个枚举都是java.lang.Enum的final子类,枚举类中的每个枚举常量都是该枚举类的一个实例...

  • Java枚举类

    枚举其实是个特殊的 Java 类,创建枚举需用enum关键字,枚举类都是java.lang.Enum的子类,jav...

  • 枚举

    一、概念: 实例有限而且固定的类,在java里被称为枚举类。 二、通过enum实现枚举类 使用enum定义的枚举类...

  • 店铺注册的dto(页面数据层)

    ShopExecution.java ShopStateEnum.java使用枚举类表示

  • 5 枚举类

    5.1 枚举类概述 Java5新增的enum关键字,用于定义枚举类。 枚举类是特殊的类,可以有自己的成员变...

  • java拾遗第一天

    枚举类(enum) 1.1 枚举类就是一个特殊的java类 1.2 枚举类的实例(对象)个数是固定的,一旦创建完成...

  • Enum

    java定义新的类型的方式:类、接口、枚举 取出枚举的全部类容: 类集对枚举的支持:EnumMap、EnumSet...

  • java枚举类

    应用 实现原理 编译器会生成一个继承enum接口的Type类,对编译的Type.class使用jad反编译可以得到

  • java枚举类

    一 Java 枚举7常见种用法DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发...

网友评论

      本文标题:Java枚举类

      本文链接:https://www.haomeiwen.com/subject/fdcadltx.html