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

enum的方法valueof(String)和values()的问题
我在eclipse开发环境打enum.然后提示出现valueof(String)和values()两个方法,但我在api上并未看见这两个方法,而且源代码里也没定义。为啥我能调用而且不会报错呢。

------解决方案--------------------
枚举类型的静态方法,这个不属于API,是JAVA核心的一部分
你用过enum吗
public enum TYPE {
 A_TYPE(1),B_TYPE(2);
 public int type;
 private TYPE(int i) { this.type=i;}
}

其他是模仿了C的枚举,不过他比C的枚举多了些功能,可以看做是个简化的class
获取枚举值的方法一种是直接调用:int i = TYPE.A_TYPE.type; // i为1
另一种就是根据值来反向获取TYPE对象: TYPE type = TYPE.valueOf(1); // type=TYPE.A_TYPE
------解决方案--------------------
对于声明为 enum 的类型,编译器会自动生成 一个继承 java.lang.Enum 的类,并且生成 valueOf 和 values() 方法