D'où l'Enum.valueOf(String) méthode venir?

En Java SE 7 (et plus probablement dans les versions précédentes) Enum classe est déclarée comme ceci:

 public abstract class Enum<E extends Enum<E>>
 extends Object
 implements Comparable<E>, Serializable

L'Enum classe possède une méthode statique avec cette signature:

  T static<T extends Enum<T>> valueOf(Class<T> enumType, String name) 

Mais il n'existe pas de méthode statique : valueOf(String) définies dans l'énumération de la classe, ni en haut dans la hiérarchie Enum appartient.

La question est de savoir d'où vient valueOf(String) viennent ?
Est-ce une caractéristique de la langue, c'est à dire une fonctionnalité intégrée dans le compilateur ?

InformationsquelleAutor Razvan | 2012-08-11