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

解决方案 »

  1.   

    这个values()是个静态方法,编译时生成 并非继承自 java.lang.Enum,所以就找不到了。参见:
    http://www.cnblogs.com/frankliiu-java/archive/2010/12/07/1898721.html
      

  2.   

    api文档也查不到,怎么知道编译时生成什么函数呢?
      

  3.   

    这个可以用  javap 来反编译最终的class文件,可以在里面看到这个 函数的明确声明,类似:public XXOO[] values();
      

  4.   


    最近正好发现这问题,正疑惑values()怎么来的呢.谢了
      

  5.   


    怎么我javap命令rt.jar包里的Enum.class,没发现values()方法。
      

  6.   

    有这个方法的,javap enum 不是enum.class,或者用eclipse工具有自动提示,也有这个函数的。
      

  7.   

    你可以用 javap 来查看下Size所生成的class文件就知道了啊,这里有例子:
    http://wenwen.soso.com/z/q273119133.htm
      

  8.   

    有兴趣的人这么多?直接看看 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 的类体都声明了啥。