总也睡不醒
一个人只拥有今生今世是不够的,他还应该拥有诗意的世界
新文章
新随笔
聚合
管理
posts - 3, comments - 5, trackbacks - 0
我的评论
re: 提问:使用枚举的类中为何会出现一个匿名类?
总也睡不醒 2007-08-08 14:13
没人理我!
自己先顶一个。
我用Jode反编译后,TestEnum类成了这样:
1
public
class
TestEnum
2
{
3
public
static
void
main(String[] strings)
{
4
MyColor mycolor
=
MyColor.blue;
5
switch
(ANONYMOUS CLASS TestEnum$
1
.$SwitchMap$MyColor
6
[mycolor.ordinal()])
{
7
case
1
:
8
System.out.println(
"
red
"
);
9
break
;
10
case
2
:
11
System.out.println(
"
green
"
);
12
break
;
13
case
3
:
14
System.out.println(
"
blue
"
);
15
break
;
16
default
:
17
System.out.println(
"
default
"
);
18
}
19
System.out.println(mycolor);
20
}
21
}
注意看switch语句块和原文的不同。第五行出现了匿名类,这应该就是TestEnum$1.class产生的原因。再看每个case语句,red green blue变成了1 2 3。这也是枚举常量的实质。不过我又奇怪了, 枚举类型的ordinal方法API帮助上是这么写的:“返回枚举常量的序数(它在枚举声明中的位置,其中
初始常量序数为零
)”。
所以啊,不研究不知道,一研究问题一大堆。看来我得要理解JVM和Java对枚举和匿名类的处理方式了。不过以我现在的水平,不是一时半会儿能完全想明白的。
那位高手能指点我一下吗?谢谢了先!
一点一滴,完善自我
<
2024年12月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
Eclipse(1)
JavaSE(3)
随笔档案
2008年1月 (1)
2007年8月 (1)
文章分类
善用佳软(4)
心灵路(4)
问题记录(3)
文章档案
2007年9月 (3)
2007年8月 (3)
2007年7月 (1)
收藏夹
Web开发(32)
我收藏的(2)
搜索
最新评论
1. re: js表单验证时,不通过但仍然发送表单
dsd
--ewe
2. re: js表单验证时,不通过但仍然发送表单
倒萨打算
--发斯蒂芬
3. re: 提问:使用枚举的类中为何会出现一个匿名类?[未登录]
@总也睡不醒
百度这个问题,你的页面在第一个,呵呵,貌似我也懂了点
--ma
4. re: js表单验证时,不通过但仍然发送表单
解决了吗
--路过
5. re: 提问:使用枚举的类中为何会出现一个匿名类?
评论内容较长,点击标题查看
--总也睡不醒