2013-01-23 80 views
0

在這個問題中im混淆瞭如何生成所有這個.class類A$Enum$1,A$Enum$2,A$Enum,A$Enum,A plz expalin它的概念,我打開了.class文件,其中我不瞭解A$Enum$2,A$Enum$1類代碼PLZ expalin我的概念是什麼意思.stringEnum關鍵字的使用和enum關鍵字後面的.class的生成

class A 
{ 
    enum Enum 
    { 
     Q1,Q2,Q3{ 

     }, 
     Q4 { 

     }, 
     Q5; 
    } 
    enum Enum1 
    {} 
} 

一個$枚舉$ 1.class代碼

class .String extends .String 
{ 

    .String(String s, int i) 
    { 
     super(s, i, null); 
    } 
} 

回答

0

共6個班的創建。

A$Enum$1 //Inner class created for Q3 
A$Enum$2 //Inner class created for Q4 
A$Enum //Enum, the enum defined within A 
A$Enum1 //Enum1, the enum defined within A 
A$1  //Not sure 
A  //Class A 

下面是對於相同的A$Enum$1

Compiled from "A.java" 
final class A$Enum$1 extends A$Enum{ 
    A$Enum$1(java.lang.String, int); 
} 

反彙編代碼的反編譯的代碼。

33: invokespecial #14; //Method A$Enum$1."<init>":(Ljava/lang/String;I)V 
    36: putstatic  #15; //Field Q3:LA$Enum; 
    39: new  #16; //class A$Enum$2