黑马程序员技术交流社区
标题:
关于枚举
[打印本页]
作者:
lwy0319
时间:
2014-3-27 04:11
标题:
关于枚举
我在API下找enum里没有values(),从它上面的父类和接口也没有找到此方法,在哪儿能找到呢?
作者:
zhuyunfei00000
时间:
2014-3-27 08:00
java.lang.annotation.ElementType类下(public enum ElementType extends Enum<ElementType>),用javap命令查看编译后的内容 貌似可以看到~
作者:
冯鸿昌
时间:
2014-3-29 18:46
Enum 的values() 方法应该是在编译的过程中动态生成的。
如下代码所示:
//申明一个ENUM
enum SimpleEnum {
ONE,TWO;
}
//经过jad反编译后的结果
final class SimpleEnum extends Enum
{
private SimpleEnum(String s, int i)
{
super(s, i);
}
public static SimpleEnum[] values()
{
SimpleEnum asimpleenum[];
int i;
SimpleEnum asimpleenum1[];
System.arraycopy(asimpleenum = ENUM$VALUES, 0, asimpleenum1 = new SimpleEnum[i = asimpleenum.length], 0, i);
return asimpleenum1;
}
public static SimpleEnum valueOf(String s)
{
return (SimpleEnum)Enum.valueOf(uc/classtest/SimpleEnum, s);
}
public static final SimpleEnum ONE;
public static final SimpleEnum TWO;
private static final SimpleEnum ENUM$VALUES[];
static
{
ONE = new SimpleEnum("ONE", 0);
TWO = new SimpleEnum("TWO", 1);
ENUM$VALUES = (new SimpleEnum[] {
ONE, TWO
});
}
}
复制代码
作者:
lwy0319
时间:
2014-3-29 22:18
谢啦,收获颇丰啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2