在Java中,对Enum类型的序列化与其他对象类型的序列化有所不同,今天就来看看到底有什么不同。下面先来看下在Java中,我们定义的Enum在被编译之后是长成什么样子的。
Java代码:
Java代码
public enum FruitEnum {
APPLE, ORAGE
}
上面的代码定义了一个FruitEnum类型,是最简单形式的,下面我们来看看编译之后的字节码。
字节码:
Java代码
public final class com.taobao.tianxiao.FruitEnum extends java.lang.Enum
....
....
....
{
public static final com.taobao.tianxiao.FruitEnum APPLE;
public static final com.taobao.tianxiao.FruitEnum ORAGE;
static {};
Code:
Stack=4, Locals=0, Args_size=0
0: new #1; //class com/taobao/tianxiao/FruitEnum
3: dup
4: ldc #13; //String APPLE
6: iconst_0
7: invokespecial #14; //Method "":(Ljava/lang/String;I)V
10: putstatic #18; //Field APPLE:Lcom/taobao/tianxiao/FruitEnum;
13: new #1; //class com/taobao/tianxiao/FruitEnum
16: dup
17: ldc #20; //String ORAGE
19: iconst_1
20: invokespecial #14; //Method "":(Ljava/lang/String;I)V
23: