黑马程序员技术交流社区

标题: 求解一个枚举问题 [打印本页]

作者: 段郎    时间: 2014-4-29 18:25
标题: 求解一个枚举问题
学习了张孝祥老师的枚举后 自己联系了一下 除了这个错误,搞不懂
enum Week
{
        MONDAY("星期一"),WEDNESDAY("星期三"),TUESDAY("星期二"),THRSDAY("星期四") ;
        private final String name ;
        private Week (String name){
                this.name = name ;
        }
        public String getName(){
                return this.name ;
        }
}
public class EnumTest
{
        public static void main(String[] args){
                Enum week = Enum.valueOf(Week .class,"星期二 ") ;
                System.out.println(week + "代表:" + week  .getName()) ;
        }
}
编译出错:找不到符 方法getName() ,位置:类型为Enum的变量week


作者: fei_xiong    时间: 2014-4-29 18:57
Week week = Week.WEDNESDAY   
作者: ﹊佑雨时杰↘    时间: 2014-4-29 18:57
楼主你好    我把你的代码改了一下   你看看能看懂不:
  1. public static void main(String[] args) {
  2. Week week = Enum.valueOf(Week.class,"WEDNESDAY") ;
  3.            System.out.println(week + "代表:" + week.getName()) ;
  4. }
复制代码

作者: fei_xiong    时间: 2014-4-29 18:58
按错了,
然后是:
week.getName();
作者: fatlv123456    时间: 2014-4-29 20:28
  Enum week = Enum.valueOf(Week .class,"星期二 ") ;//这句错了
查API文档能看到:public static <T extends Enum<T>> T valueOf(Class<T> enumType,String name),enumType - 要从中返回常量的枚举类型的 Class 对象
name - 要返回的常量名称
name的值是枚举的常量名称,不是构造方法的参数,也不是枚举常量中的一个变量值
Week week = Enum.valueOf(Week.class,"WEDNESDAY")//这样就对了




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