教材里面有段关于枚举的代码,但一直报错,麻烦高手看一下
import java.util. *; public class EnumTest { public static void main(String[] args) { Scanner in=new Scanner(System.in); System.out.print("请输入服装型号:(SMALL,MEDIUM,LARGE,EXTRA_LARGE,EXTRA_EXTRA_LARGE)"); String input=in.next().toUpperCase(); Size size=Enum.valueOf(Size.class,input); System.out.println("Size="+size); System.out.println("abbreviation="+size.getAbbreviation()); if(size==Size.EXTRA_LARGE^size==Size.EXTRA_EXTRA_LARGE) System.out.println("很好,你注意到了下划线"); } public static String abbreviation; enum Size{SMALL,MEDIUM,EXTRA_LARGE,EXTRA_EXTRA_LARGE} private void Size(String abbreviation){this.abbreviation=abbreviation;} public String getAbbreviation(){return abbreviation;} }
按照你给的代码来看,遇到的报错是<preclass="brush:java;toolbar:true;auto-links:false;">System.out.println("abbreviation="+size.getAbbreviation());
因为size内并没有getAbbreviation()方法。并且size也不能调用EnumTest内的getAbbreviation()方法,所以报错了。
根据Abbreviation方法的字面含义来看,应该是要判断后存入Size的缩写如:SMALL→S
判断方法我就不赘述了。
getAbbreviation这个方法不存在,因为你这么定义getAbbreviation是EnumTest的方法,而不是Size这个枚举的,所以你直接size.getAbbreviation()是编译失败的。版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。