如何查看生成的类文件?

时间:2017-07-26 14:36:25

标签: java android android-studio decompiling decompiler

使用Android Studio,我试图了解更多有关幕后内容的信息。其中之一就是代码生成。

例如,当您在代码中定义嵌套枚举时,就像这样...

class EnumExample1
{
    public enum Season
    {
        WINTER,
        SPRING,
        SUMMER,
        FALL
    }
}  

根据this tutorial,编译器会生成此...

public static final class EnumExample1$Season extends Enum  
{  
    private EnumExample1$Season(String s, int i)  
    {
        super(s, i);  
    }  

    public static EnumExample1$Season[] values()  
    {  
        return (EnumExample1$Season[])$VALUES.clone();  
    }  

    public static EnumExample1$Season valueOf(String s)  
    {  
        return (EnumExample1$Season)Enum.valueOf(EnumExample1$Season, s);  
    }  

    public static final EnumExample1$Season WINTER;  
    public static final EnumExample1$Season SPRING;  
    public static final EnumExample1$Season SUMMER;  
    public static final EnumExample1$Season FALL;

    private static final EnumExample1$Season $VALUES[];  

    static   
    {
        WINTER = new EnumExample1$Season("WINTER", 0);  
        SPRING = new EnumExample1$Season("SPRING", 1);  
        SUMMER = new EnumExample1$Season("SUMMER", 2);  
        FALL.  = new EnumExample1$Season("FALL", 3);  

        $VALUES = new EnumExample1$Season[]
        {  
            WINTER, SPRING, SUMMER, FALL  
        };
    )
}

这对于准确理解正在发生的事情非常有帮助。因此,我试图了解其他各种事情是如何被编译下来的,但我似乎无法找到任何关于如何获得类似于此源代码的内容。我的猜测是,我将不得不反编译生成的' *。jar'文件,但这纯粹是猜测(虽然我想相信它至少是一个有点受过教育的人。)

那么如何根据自己的视图查看编译器生成的代码?

0 个答案:

没有答案