黑马程序员技术交流社区
标题:
一个在API上查找不到但JDK却识别的方法????
[打印本页]
作者:
李大强
时间:
2013-2-10 17:55
标题:
一个在API上查找不到但JDK却识别的方法????
在老师讲的交通灯管理系统里(视频09)有一个方法是“Lamp lamp=Lamp.valueOf(String str)",此方法可以使一个字符串类型的变量变成一个Lamp类型
的对象(其中Lamp是枚举类型),可是我查遍了API的Enum类及其父类也没有找到此方法啊?难道此方法是凭空产生的?
除此之外还有一个很大的疑惑,按照此程序的要求,每一个灯都有且只有一个对象,就算此方法存在,但它是如何保证还是返回原来的那个灯呢?
其中部分代码如下:
public enum Lamp {
S2N("N2S","S2W",false),S2W("N2E","E2W",false),E2W("W2E","E2S",false),E2S("W2N","S2N",false),
N2S(null,null,false),N2E(null,null,false),W2E(null,null,false),W2N(null,null,false),
S2E(null,null,true),E2N(null,null,true),N2W(null,null,true),W2S(null,null,true);
private Lamp(String opposite,String next,boolean lighted){
this.opposite = opposite;
this.next = next;
this.lighted = lighted;
}
private boolean lighted;
private String opposite;
private String next;
public boolean isLighted(){
return lighted;
}
public void light(){
this.lighted = true;
if(opposite != null){
Lamp.valueOf(opposite).light();//此方法到底来自何方啊,我怎么查遍API都没有找到啊!而且MyEclipse竟然还识别?
}
System.out.println(name() + " lamp is green,下面总共应该有6个方向能看到汽车穿过!");
}
............
}
作者:
王少雷
时间:
2013-2-10 19:23
static <T extends Enum<T>>
T
valueOf(Class<T> enumType, String name)
返回带指定名称的指定枚举类型的枚举常量。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2