1 关于 java enum
java1.5 引入的enum ,它是一种新的类型,因为一些方法运行的时候,它需要的数据不是任意的,而必须是一定范围类的值。
2 java enum简单示例
public enum Season{
spring,summer,autumn,winter;
}
枚举对象里面的值都必须是唯一的。
可以通过Enum类型名直接引用该常量,如Season.spring,Season.summer等等
枚举类的每一个枚举值实际上就是枚举类的一个实例对象,为什么这么说呢,我们来看看在jdk1.5 enum出现之前是如何实现的
public final class Season{
public static final Season spring=new Season();
public static final Season summer=new Season();
public static final Season autumn=new Season();
public static final Season winter=new Season();
private Season(){
}
}
3 java enum复杂用法:
public enum Season{
spring("3月-5月"),summer("6月-8月"),autumn("9月-11月"),winter("12月-2月")
}
private final String time;
private Season(String time){
this.time=time;
}
public String getTime{
return time;
}
}
4 java enum的实现原理
Java Enum类型的语法结构尽管和java类的语法不一样,应该说差别比较大。但是经过编译器编译之后产生的是一个class文件。该class文件经过反编译可以看到实际上是生成了一个类,该类继承了java.lang.Enum<E>
public final class Season extends java.lang.Enum{
public static final Season spring;
public static final Season summer;
public static final Season autumn;
public static final Season winter;
static{
}
public static Season[] values();
public static Season valueOf(java.lang.String);
}