java - 枚举类的内部(扩展)版本

标签 java enums

这是一个采用 http://www.javatpoint.com/enum-in-java 形式的示例

enum Season{  
    WINTER(10), SUMMER(20); 

    private int value;

    Season(int value) {  
        this.value=value;
    }
}  

作者声称这是编译器为上述枚举类型示例生成的内部代码

final class Season extends Enum {  
    public static Season[] values() {  
        return (Season[])$VALUES.clone();  
    }

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

    private Season(String s, int i, int j) {  
        super(s, i);  
        value = j;  
    }

    public static final Season WINTER;  
    public static final Season SUMMER;  
    private int value;  
    private static final Season $VALUES[];

    static {  
        WINTER = new Season("WINTER", 0, 10);  
        SUMMER = new Season("SUMMER", 1, 20);  
        $VALUES = new Season[] {  
            WINTER, SUMMER  
        };  
    }  
}  

请问哪个工具可以帮助查看枚举的内部(扩展)版本

最佳答案

使用 jad ( http://varaneckas.com/jad/ ) 这是我得到的输出:

// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   Season.java


final class Season extends Enum
{

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

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

    private Season(String s, int i, int j)
    {
        super(s, i);
        value = j;
    }

    public static final Season WINTER;
    public static final Season SUMMER;
    private int value;
    private static final Season $VALUES[];

    static 
    {
        WINTER = new Season("WINTER", 0, 10);
        SUMMER = new Season("SUMMER", 1, 20);
        $VALUES = (new Season[] {
            WINTER, SUMMER
        });
    }
}

关于java - 枚举类的内部(扩展)版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34390091/

相关文章:

java - 删除非字母数字但保留拉丁字符

java - 如何在JFrame的边框上绘图

typescript - 如何检查给定字符串是否作为值存在于 Typescript 的字符串枚举中?

java - 在 Java 中是否可以根据 Enum 中的另一个值多次将 Enum 的一个值添加到 Arraylist 中?

java - String(或 T)和 Enum 的父类(super class)

java - 从返回枚举的接口(interface)检索数据

java - 空栈异常

java - 为什么我的 NavController 找不到我已有的 ID?

java - 在java服务器/客户端编程中提升到一个新的水平

c++ - 为枚举重载代字号 "~"运算符