java枚举类型的原理
说明
1、Java追加了java.lang.Enum抽象类,是所有的枚举类型的基础类。提供了基本的属性和基本的方法。同时,支持将枚举作为Set和Map使用
2、用关键字enum创建枚举类型并进行编译之后,编译器就会为我们生成一个相关的类别,它继承了java.lang.Enum类。
实例
代码语言:javascript复制public abstract class Enum<E extends Enum<E>>
implements Comparable<E>, Serializable {
// 枚举的常量名,例如MONDAY, TUESDAY
private final String name;
public final String name() {
return name;
}
// 枚举的序号,按顺序从0开始
private final int ordinal;
public final int ordinal() {
return ordinal;
}
protected Enum(String name, int ordinal) {
this.name = name;
this.ordinal = ordinal;
}
public String toString() {
return name;
}
public static <T extends Enum<T>> T valueOf(Class<T> enumType,
String name) {
T result = enumType.enumConstantDirectory().get(name);
if (result != null)
return result;
if (name == null)
throw new NullPointerException("Name is null");
throw new IllegalArgumentException(
"No enum constant " enumType.getCanonicalName() "." name);
}
...
}
以上就是java枚举类型的原理,希望对大家有所帮助。