日期:2014-05-20  浏览次数:20713 次

java 枚举问题,values
corejava8 上面关于枚举类型 有下面一句话

每个枚举类型 都有一个静态 values方法,这个方法在api文档里面为啥找不到呢 谢谢!

------解决方案--------------------
这个values()是个静态方法,编译时生成。。。 并非继承自 java.lang.Enum,所以就找不到了。

参见:
http://www.cnblogs.com/frankliiu-java/archive/2010/12/07/1898721.html
------解决方案--------------------
探讨

这个values()是个静态方法,编译时生成。。。 并非继承自 java.lang.Enum,所以就找不到了。

参见:
http://www.cnblogs.com/frankliiu-java/archive/2010/12/07/1898721.html

------解决方案--------------------
探讨

这个。。。可以用 javap 来反编译最终的class文件,可以在里面看到这个 函数的明确声明,类似:

public XXOO[] values();

------解决方案--------------------
有兴趣的人这么多?直接看看 Java语言标准(JLS)吧:
http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.9.2

《8.9.2 Enum Body Declarations》
这里会说明 Enum 的类体都声明了啥。