标题: 枚举 [打印本页] 作者: 姚志华 时间: 2011-11-8 12:29 标题: 枚举 枚举不是不能生成新的对象吗,为什么用valueOf方法却可以把一个字符串转成枚举值呢?作者: 海林 时间: 2011-11-8 12:40
这是java api 的解释:
public static <T extends Enum<T>> T valueOf(Class<T> enumType,
String name)返回带指定名称的指定枚举类型的枚举常量。名称必须与在此类型中声明枚举常量所用的标识符完全匹配。(不允许使用额外的空白字符。)
参数:
enumType - 要从中返回常量的枚举类型的 Class 对象
name - 要返回的常量名称
返回:
带指定名称的指定枚举类型的枚举常量
然后到我到Eclipse里翻了一下enum valueOf()方法的源码。
public static <T extends Enum<T>> T valueOf(Class<T> enumType,
String name) {
T result = enumType.enumConstantDirectory().get(name);
if (result != null)
return result;
if (name == null)
throw new NullPointerException("Name is null");
throw new IllegalArgumentException(
"No enum const " + enumType +"." + name);
}