黑马程序员技术交流社区
标题:
关于交通灯的问题
[打印本页]
作者:
陈国柱
时间:
2013-9-12 10:32
标题:
关于交通灯的问题
本帖最后由 陈国柱 于 2013-9-12 11:35 编辑
Lamp.valuesof(opposite).isLight(),将opposite这个字符串变量传进去就可以调用灯方法,为什么这样也可以的?我查API里面类和枚举那里都好像没有这样的方法的?
作者:
xscn
时间:
2013-9-12 10:58
枚举都自动包含两个预定义方法: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();也是可以的,但不如上面的简便不是吗?
作者:
陈国柱
时间:
2013-9-12 11:33
xscn 发表于 2013-9-12 10:58
枚举都自动包含两个预定义方法:values()和valueOf()
就是说定义一个enum 的类型,编译器会自动生成一个继 ...
谢谢,原来是这样的,怪不得我找API都没有找到对应的信息。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2