• 技术文章 >Java >java教程

    java如何定义Enum类实现取值和描述

    WBOYWBOY2023-04-29 15:16:13转载27

    定义Enum类实现取值和描述

    在C++、Java等计算机编程语言中,枚举类型(Enum)是一种特殊数据类型,能够为一个变量定义一组预定义的常量。在使用枚举类型的时候,枚举类型变量取值必须为其预定义的取值之一。

    1.用class关键字实现的枚举类型

    在JDK5之前,Java语言不支持枚举类型,只能用类(class)来模拟实现枚举类型。

    /** 订单状态枚举 */public final class OrderStatus {    /** 属性相关 */
        /** 状态取值 */
        private final int value;    /** 状态描述 */
        private final String description;    /** 常量相关 */
        /** 已创建(1) */
        public static final OrderStatus CREATED = new OrderStatus(1, "已创建");    /** 进行中(2) */
        public static final OrderStatus PROCESSING = new OrderStatus(2, "进行中");    /** 已完成(3) */
        public static final OrderStatus FINISHED = new OrderStatus(3, "已完成");    /** 构造函数 */
        private OrderStatus(int value, String description) {        this.value = value;        this.description = description;
        }    /** 获取状态取值 */
        public int getValue() {        return value;
        }    /** 获取状态描述 */
        public String getDescription() {        return description;
        }
    }

    2.用enum关键字实现的枚举类型

    JDK5提供了一种新的类型——Java的枚举类型,关键字enum可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常量使用,这是一种非常有用的功能。

    /** 订单状态枚举 */public enum OrderStatus {    /** 常量相关 */
        /** 已创建(1) */
        CREATED(1, "已创建"),    /** 进行中(2) */
        PROCESSING(2, "进行中"),    /** 已完成(3) */
        FINISHED(3, "已完成");    /** 属性相关 */
        /** 状态取值 */
        private final int value;    /** 状态描述 */
        private final String description;    /** 构造函数 */
        private OrderStatus(int value, String description) {        this.value = value;        this.description = description;
        }    /** 获取状态取值 */
        public int getValue() {        return value;
        }    /** 获取状态描述 */
        public String getDescription() {        return description;
        }
    }

    其实,Enum类型就是一个语法糖,编译器帮我们做了语法的解析和编译。通过反编译,可以看到Java枚举编译后实际上是生成了一个类,该类继承了 java.lang.Enum,并添加了values()、valueOf()等枚举类型通用方法。

    以上就是java如何定义Enum类实现取值和描述的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:亿速云,如有侵犯,请联系admin@php.cn删除
    专题推荐:Java enum
    上一篇:java的多态中成员怎么访问 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • java中UDP怎么发送数据• Java连接SqlServer错误如何解决• Java方法如何定义与调用• Java操作pdf的工具类itext怎么处理• java的SynchronousQueue是什么
    1/1

    PHP中文网