In Java SE 7 (and most probably in previous versions) the Enum class is declared like this:
public abstract class Enum<E extends Enum<E>>
extends Object
implements Comparable<E>, Serializable
The Enum class has a static method with this signature:
T static<T extends Enum<T>> valueOf(Class<T> enumType, String name)
But there is no static method : valueOf(String)
defined in the Enum class nor upwards in the hierarchy Enum belongs to.
The question is where does valueOf(String)
come from ?
Is it a feature of the language, i.e. a feature built in the compiler ?