在 Java SE 7(很可能是以前的版本)中,Enum 类声明如下:
public abstract class Enum<E extends Enum<E>>
extends Object
implements Comparable<E>, Serializable
Enum 类有一个带有这个签名的静态方法:
T static<T extends Enum<T>> valueOf(Class<T> enumType, String name)
但是没有静态方法:valueOf(String)
在 Enum 类中定义,也没有在 Enum 所属的层次结构中向上定义。
问题是valueOf(String)
从哪里来?它是语言的一个特性,即编译器内置的特性吗?