枚举都自动包含两个预定义方法:values()和valueOf() 
就是说定义一个enum 的类型,编译器会自动生成一个继承 java.lang.Enum的类,并且生成 values()和 valueOf()方法 
public static enum-type[ ] values( ) 
public static enum-type valueOf(String str)返回值类型是enum-type,自然能调用isLight()方法 
 
API中描述的是static <T extends Enum<T>> T   valueOf(Class<T> enumType, String name)  
                    返回带指定名称的指定枚举类型的枚举常量。  
所以你写成Lamp.valueOf(Lamp.class, opposite).light();也是可以的,但不如上面的简便不是吗? 
 |