masterJ2SE篇006——Enum

来源:互联网 发布:股票软件的数据看不懂 编辑:程序博客网 时间:2024/06/05 15:46
枚举在实际项目中的使用频路还是挺高的,有些比较稳定的数据集是非常适合放在枚举中的。比如订单的状态,错误码等等。

enum 的语法结构尽管和 class 的语法不一样,但是经过编译器编译之后产生的是一个class文件。该class文件经过反编译可以看到实际上是生成了一个类,该类继承了java.lang.Enum<E>。
所以定义一个枚举的时候是禁止继承的,否则就和java.lang.Enum冲突了。

Enum中的构造方法必须是私有的,因为Enum里的元素在编译的时候已经确定了,就是你定义的那一些。

最简单的Enum
public enum EnumTest {
    MONTUEWEDTHUFRISATSUN;

}

这段代码实际上调用了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()               返回枚举常量的名称,它包含在声明中。


实际项目中都会给Enum指定属性和方法,以下是某个项目中的实例,值得参考
package com.zls.masterjava.request.simple;
import java.io.Serializable;
public interface EnumBase extends Serializable {

    public String name();
   
    public String code();
    
    public String message();
}

package com.zls.masterjava.request.simple;
public enum OrderStatusEnum implements EnumBase {
                                                 SUCCESS("SUCCESS""成功"),
                                                 FAIL("FAIL""失败");
    private String code;
    private String message;
    private OrderStatusEnum(String code, String message) {
        this.code = code;
        this.message = message;
    }
    @Override
    public String code() {
        return code;
    }
    @Override
    public String message() {
        return message;
    };
}


0 0
原创粉丝点击