您的位置:首页 > 产品设计 > UI/UE

关于Enum枚举类没有values()方法却可以在枚举类中使用的问题

2014-06-24 10:03 281 查看
在java.lang.Enum类中,所有的方法如下所示:



里面并没有values()静态方法,而在我们使用enum类时,例如:enum classA{

RED,GREEN

}

可以通过java编译器的提示得到values()静态方法,这是为什么呢?



这是由于java编译器在对enum关键字进行处理时,实际上是将enum转换成为了java.lang.Enum类的一个子类来完成,而这个子类中含有values()静态方法。这一点,可以通过反编译enum类来查看。



如图,通过javap反编译enum枚举类,可以看到编译器在对enum处理时,实际上是转换成了Enum的一个子类来实现的,里面可以看到有values()静态方法的声明。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐