0

在这个问题中,我很困惑如何生成所有这些.class 类是A$Enum$1,A$Enum$2,A$Enum,A$Enum,A请解释它背后的概念,我打开了.class 文件,其中我不明白A$Enum$2,A$Enum$1 类代码请解释我的概念这是什么.string意思

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

       },
       Q4 {

       },
       Q5;
    }
    enum Enum1
    {}
}

A$Enum$1.class 代码

class .String extends .String
{

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

1 回答 1

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
于 2013-01-23T07:50:43.273 回答