黑马程序员技术交流社区

标题: 枚举的valueOf方法参数问题 [打印本页]

作者: 胡志翔    时间: 2013-10-26 18:49
标题: 枚举的valueOf方法参数问题

张老师讲课的时候用枚举的valueOf的方法的时候接受一个参数,查阅API文档是接收2个参数,为什么张老师这里不报错?

1.png (14.78 KB, 下载次数: 11)

1.png

作者: linjl_ll    时间: 2013-10-26 19:27
你好,你查询的java.lang.Enum类中的说明吧?java.lang.Enum的说明文档中没有valueOf(String value)这个方法,然后我通过反射判断出Enum类中确实没有该参数的方法,代码如下:try {
                        Method enummethod = Enum.class.getMethod("valueOf", String.class);
                } catch (SecurityException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (NoSuchMethodException e) {
                        // TODO Auto-generated catch block
                        System.out.println("没有该方法!!");
                }
我们知道Enum是java中所有枚举的基类,既然Enum中没valueOf(String value)的方法,那么应该在子类当中吧,这里说的就是Lamp,我使用反射判断出Lamp类中有valueOf(String value)个方法,代码如下:
try {
                        Method enummethod = TrafficLamp.class.getMethod("valueOf", String.class);
                        System.out.println("执行valueOf(String value)方法:"+enummethod.invoke(null,"GREEN"));
                } catch (SecurityException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (NoSuchMethodException e) {
                        // TODO Auto-generated catch block
                        System.out.println("没有该方法!!");
                }
                catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2