java中enum的values()方法定义在哪里呢?
最近在看枚举类型的时候,发现用For-each循环遍历enum中的值时,通过“enum类型名“.values()时可以获得枚举类型中的值,而我好奇去查看java6的API...
最近在看枚举类型的时候,发现用For-each循环遍历enum中的值时,通过“enum类型名“.values()时可以获得枚举类型中的值,而我好奇去查看java6的API文档里,却发现:
1)java.lang.Enum中只有valueOf()的方法,并没有values();
2)java.lang.Object我亦并未找到values();
然后我直接去查看Enum和Object的源代码也没有发现该方法,
而在google上查,我也没有找到答案,所以在这里提问,enum的values()方法在哪里?
最后十分感谢您浪费宝贵的时间把我的提问看完,我也十分期待您的帮助。 展开
1)java.lang.Enum中只有valueOf()的方法,并没有values();
2)java.lang.Object我亦并未找到values();
然后我直接去查看Enum和Object的源代码也没有发现该方法,
而在google上查,我也没有找到答案,所以在这里提问,enum的values()方法在哪里?
最后十分感谢您浪费宝贵的时间把我的提问看完,我也十分期待您的帮助。 展开
2个回答
展开全部
values()方法是编译器插入到enum定义中的static方法,所以,当你将enum实例向上转型为父类Enum是,values()就不可访问了。解决办法:在Class中有一个getEnumConstants()方法,所以即便Enum接口中没有values()方法,我们仍然可以通过Class对象取得所有的enum实例
关于详细的说明可以参考:
http://www.cnblogs.com/happyPawpaw/archive/2013/04/09/3009553.html
http://blog.sina.com.cn/s/blog_6fd0fd4b01014x8l.html
关于详细的说明可以参考:
http://www.cnblogs.com/happyPawpaw/archive/2013/04/09/3009553.html
http://blog.sina.com.cn/s/blog_6fd0fd4b01014x8l.html
展开全部
这个方法在java.lang.annotation 包的Enum ElementType下
ElementType(成员类型类)继承了Enum接口,增加了values方法
ElementType(成员类型类)继承了Enum接口,增加了values方法
参考资料: http://download.oracle.com/javase/6/docs/api/java/lang/annotation/ElementType.html#values()
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询