日期:2014-05-20  浏览次数:20814 次

为什么我这个枚举程序按照书上写的程序有那么多错误,我还改正不了?
如题,感觉没有写错,自己看不出来,但是提示有许多错误。

import java.util.*;

public class  Test
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
String input = in.next().toUpperCase();
Size size = Enum.valueOf(Size.class, input);
System.out.println("size = " + size);
}
}

enum Size
{
private String abbreviation;

SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRA_LAGRGE("XL");

private Size(String abbreviation);
{
this.abbreviation = abbreviation;
}

public String getAbbreviation()
{
return abbreviation;
}

}


错误提示有

------解决方案--------------------
书上也不一定都对

enum Size
{
        SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRA_LAGRGE("XL");  
        private String abbreviation;
        private Size(String abbreviation)
        {
                this.abbreviation = abbreviation;    
        }
         
        public String getAbbreviation()
        {
                return abbreviation;    
        }
                 
}

改成这个,注意你的20行多了个分号
------解决方案--------------------
第18行的方法JDK里面是没有的,除非楼主引用了其它的jar包,如果是这样的话,那么楼主编译的时候需要加入导入的jar包

第16行是什么写法?我没见过...不过16行的语法肯定是通不过的

第20行是方法定义和实现,既然有实现的话,那么就定义方法后就不需要分号;了,把最后一个分号去掉。

------解决方案--------------------
import java.util.*;
 
public class  Test
{
        public static void main(String[] args)
        {
                Scanner in = new Scanner(System.in);    
                String input = in.next().toUpperCase();
                Size size = Enum.valueOf(Size.class, input);
                System.out.println("size = " + size);
        }    
}
 
enum Size
{
     
         
        SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRA_LAGRGE("XL");    
            private String abbreviation;//这句位置放这
        private Size(String abbreviation)//这个地方分号去掉
        {
                this.abbreviation = abbreviation;    
        }
         
        public String getAbbreviation()
        {
                return abbreviation;    
        }
                 
}
 
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

import java.util.*;
 
public class  Test
{
        public static void main(String[] args)
        {
                Scanner in = new Scanner(System.in);