zoukankan      html  css  js  c++  java
  • 初识Java Enum

    enum 的全称为 enumeration, 是 JDK 1.5  中引入的新特性,存放在 java.lang 包中。

    enum是关键字,感觉它跟class、interface是并列的,并且不能跟final,abstract同时使用,因为它默认是final类型了。

    enum类中的每个enum元素都是其类的static final实例

    enum是枚举类型,定义为”staitc final“的,也就是说不能被重写和继承,在初始化过程中即进行赋值,并且不能被改变

    enum修饰的类不能被其他类继承,也不能继承其他类。原因在于,enum默认继承了Enum类,所以不能多重继承,而被enum修饰的类默认为final的,所以也不能衍生出子类。

    最简单的例子

     1 enum EnumData {
     2     MON, TUE, WED, THU, FRI, SAT, SUN;
     3 }
     4 public class EnumTest {
     5     public static void main(String[] args) {
     6         System.out.println(EnumData.MON);
     7         for (EnumData e : EnumData.values()) {
     8             System.out.println(e.toString());
     9         }
    10     }
    11 }

    语法(定义)

        创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 java.lang.Enum 类的子类(java.lang.Enum 是一个抽象类)。枚举类型符合通用模式 Class Enum<E extends Enum<E>>,而 E 表示枚举类型的名称。枚举类型的每一个值都将映射到 protected Enum(String name, int ordinal) 构造函数中,在这里,每个值的名称都被转换成一个字符串,并且序数设置表示了此设置被创建的顺序。

    public enum EnumTest {
    MON, TUE, WED, THU, FRI, SAT, SUN;
    }

    这段代码实际上调用了7次 Enum(String name, int ordinal):

    new Enum<EnumTest>("MON",0);
    new Enum<EnumTest>("TUE",1);
    new Enum<EnumTest>("WED",2);
    ... ...

    enum 对象的常用方法介绍

    int compareTo(E o)
              比较此枚举与指定对象的顺序。
    Class<E> getDeclaringClass()
              返回与此枚举常量的枚举类型相对应的 Class 对象。
    String name()
              返回此枚举常量的名称,在其枚举声明中对其进行声明。
    int ordinal()
              返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。
    String toString()
               返回枚举常量的名称,它包含在声明中。
    static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)
              返回带指定名称的指定枚举类型的枚举常量。

    参考链接:
    [1]http://www.cnblogs.com/hyl8218/p/5088287.html
    [2]http://blog.csdn.net/u013248535/article/details/52918940

    详细使用,还是参考链接里吧!

    添加一份我常用的模板吧

    /**
     * 转码状态
     *
     * @author jiashubing
     * @since 2019/1/18
     */
    public enum TranscodeStatusEnum {
    
        FAIL("转码失败", (short) -1), WAIT("排队等待", (short) 0), COMMIT("提交作业", (short) 1), SUCCESS("完成转码", (short) 2);
    
        private String name;
        private short index;
    
        // 构造方法
        TranscodeStatusEnum(String name, short index) {
            this.name = name;
            this.index = index;
        }
    
        //覆盖方法
        @Override
        public String toString() {
            return this.index + "_" + this.name;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public short getIndex() {
            return index;
        }
    
        public void setIndex(short index) {
            this.index = index;
        }
    }
  • 相关阅读:
    java把指定文字输出为图片流,支持文字换行
    java根据图片和文字生成自定义图片
    eclipse中10个最有用的快捷键组合
    关于版本号:alpha、beta、rc、stable
    Maven内置属性及使用
    Linux终端执行shell脚本,提示权限不够的解决办法
    执行tsung时报"Maximum number of concurrent users in a single VM reached
    SSIS连接SAPBI
    SharePoint 2013连接非默认端口的SQL Server
    SQL Server数据库损坏、检测以及简单的修复办法
  • 原文地址:https://www.cnblogs.com/acm-bingzi/p/javaEnum.html
Copyright © 2011-2022 走看看