ENUM问题

问题描述

publicclassEnumTest{publicstaticvoidmain(Stringagrs[]){Scannerin=newScanner(System.in);System.out.print("Enterasize:(SMALL,MEDIUM,LARGE,EXTAR_LARGE)");Stringinput=in.next().toUpperCase();Sizesize=Enum.valueOf(Size.class,input);System.out.print("size="+size);System.out.print("abbreviation="+size.getAbbreviation());if(size==Size.EXTAR_LARGE)System.out.print("Goodjob--youpaidattentiontothe_.");}}enumSize{SMALL("S"),MEDIUM("M"),LARGE("L"),EXTAR_LARGE("XL");privateSize(Stringabbreviation){this.abbreviation=abbreviation;}publicStringgetAbbreviation(){returnabbreviation;}privateStringabbreviation;}这段代码的输出结果是:Enterasize:(SMALL,MEDIUM,LARGE,EXTAR_LARGE)。它下面好几个输出语句没有执行。这是什么原因呢?请帮忙解释一下!

解决方案

解决方案二:
这要看你输入的是什么,如果是S或M,L,XL会报IllegalArgumentException如果输入SMALL或MEDIUM,LARGE,EXTAR_LARGE运行正常
解决方案三:
importjava.util.Scanner;publicclassEnumTest{publicstaticvoidmain(Stringagrs[]){Scannerin=newScanner(System.in);System.out.print("Enterasize:(SMALL,MEDIUM,LARGE,EXTAR_LARGE)");Stringinput=in.next().toUpperCase();Sizesize=Enum.valueOf(Size.class,input);System.out.print("size="+size);System.out.print("abbreviation="+size.getAbbreviation());if(size==Size.EXTAR_LARGE)System.out.print("Goodjob--youpaidattentiontothe_.Size.EXTAR_LARGE");elseif(size==Size.LARGE){System.out.print("Goodjob--youpaidattentiontothe_.Size.LARGE");}elseif(size==Size.SMALL){System.out.print("Goodjob--youpaidattentiontothe_.Size.SMALL"+Size.SMALL);}}}enumSize{SMALL("S"),MEDIUM("M"),LARGE("L"),EXTAR_LARGE("XL");privateSize(Stringabbreviation){this.abbreviation=abbreviation;}publicStringgetAbbreviation(){returnabbreviation;}privateStringabbreviation;}运行:Enterasize:(SMALL,MEDIUM,LARGE,EXTAR_LARGE)small(自己输入)size=SMALLabbreviation=SGoodjob--youpaidattentiontothe_.Size.SMALLSMALL

时间: 2024-11-02 16:30:07

ENUM问题的相关文章

Video for Linux Two API Specification revision0.24【转】

转自:http://blog.csdn.net/jmq_0000/article/details/7536805#t136 Video for Linux Two API Specification Revision 0.24 Michael H Schimek             <mschimek@gmx.at>            Bill Dirks Hans Verkuil Martin Rubli Copyright 1999, 2000, 2001, 2002, 2003,

C#中已知enum值如何取出enum

enum TypeName { SystemString, SystemInt16, SystemInt32 }     现在有string typeName 里面存放 TypeName的枚举值,比如"SystemString" 现在要取出TypeName.SystemString: 使用Enum类的反射:   (TypeName)typevalue = (TypeName)Enum.Parse(typeof(TypeName), typeName, true); 为了事先验证type

Jsdk5.0中新增枚举enum类型使用例解

js 作者:Junsan Jin 日期:2005-03-25 邮箱:junsan21@126.com ; junnef21@sohu.com Jsdk5.0中新增了很多的特性,如泛型.增强的循环.改进的装.拆箱.静态引入等,大大增强了java语言的易用性. 我现在正在做一个从com+(dcom)平台到j2ee平台移植的项目,中间有很多枚举类型的定义,以前做起来要引入第三方类库,或者自己写类库,或者干脆定义成静态变量使用,很不方便,而且可能会产生很多问题.Jsdk5.0的发布正好解决了这些问题.

再谈java枚举 ENUM

没有枚举之前: 在没有枚举之前,我们想列举一些相关的常量,我们会采用如下的方式: 1 2 3 4 interface ActionInterface {     public static final int RIGHT = 0;     public static final int LEFT = 1; } 然后在某个类似于下面的方法中,使用这些常量: 1 2 3 4 5 6 7 8 9 10 11 12 public void playWithInterface(int num) {    

C/C++中一个简单的enum手法(idiom)

今天写程序的时候,又用到这个idiom了,于是顺便贴出来.这个idiom蛮简单的,估计很 多人都用过.今天主要是贴出来给新手参考(老手们就甭费时看此帖了). 为了说明这个手法具体该咋用,咱举一个简单的例子来说事儿.比方说要开发一个网络程 序,其中需要统计各种网络协议的数据包数量. ★版本1 假设一开始只需要处理HTTP和FTP两种协议.有些同学不假思索,立即会声明如下两个整 数用于统计: int nCntHttp = 0; int nCntFtp = 0; 猛一看,似乎没啥问题.但是,如果需求发

Scalaz(4)- typeclass:标准类型-Equal,Order,Show,Enum

  Scalaz是由一堆的typeclass组成.每一个typeclass具备自己特殊的功能.用户可以通过随意多态(ad-hoc polymorphism)把这些功能施用在自己定义的类型上.scala这个编程语言借鉴了纯函数编程语言Haskell的许多概念.typeclass这个名字就是从Haskell里引用过来的.只不过在Haskell里用的名称是type class两个分开的字.因为scala是个OOP和FP多范畴语言,为了避免与OOP里的type和class发生混扰,所以就用了typecl

C# Enum设计和使用的相关技巧

技巧|设计 Enum的运算通常涉及到位运算(AND.OR.XOR),按位运算, 常使用FlagsAttribute 自定义属性定义.FlagsAttribute 和 Enum 的准则:只有要对数值执行按位运算(AND.OR.XOR)时才对枚举使用 FlagsAttribute 自定义属性. 用 2 的幂(即 1.2.4.8 等)定义枚举常量.这意味着组合的枚举常量中的各个标志都不重叠. 请考虑为常用标志组合创建一个枚举常量.例如,如果用于文件 I/O 操作的枚举包含枚举常量 Read = 1 和

C# Idioms: Enum还是Enum Class(枚举类)

C# Idioms:Enum还是Enum Class(枚举类) marshine (原文排版格式:http://www.marshine.com) reversion:2004/5/28修改说明:感谢Ninputer提到的CLS兼容问题,同时修改了原来版本没有提及的Equals改写,以及修改"=="重载的不完善代码,和增加enum struct内容 reversion:2004/6/4 增加kirc提到的Enum的Flags特性,因为文本超长,新的版本可以在http://www.mar

Java 语言中 Enum 类型的使用介绍

Enum 类型的介绍 枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似 的值包含到一种类型当中.而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的 定义相似.不过相比较常量类型,枚举类型可以为申明的变量提供更大的取值范围. 举个例子来说明 一下,如果希望为彩虹描绘出七种颜色,你可以在 Java 程序中通过常量定义方式来实现. 清单 1. 常量定义 Public static class RainbowColor { // 红橙黄绿青蓝紫

用NHibernate持久化enum和bool类型

开篇 用NHibernate持久化类的enum和bool类型的属性的时候,我们需要持久化的更通用一些,数据库无关一些. 枚举持久化为对应整数的字符串,NH默认持久化为整数. 布尔的持久化默认根据数据库的类型而不同,sqlserver会持久化为bit,可是很多数据库没有bit类型,通常用char来持久化. 可以选择持久化为Y和N,也可以选择持久化为1和0. 1.枚举enum的持久化 将枚举持久化成一个字符串,也就是将枚举对应的整数持久化到数据库. public enum Status { Yes