A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在老师讲的交通灯管理系统里(视频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个方向能看到汽车穿过!");
               
        }
............
}

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

1 个回复

倒序浏览

static <T extends Enum<T>>
T
valueOf(Class<T> enumType, String name)
          返回带指定名称的指定枚举类型的枚举常量。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马