package test;
import java.util.*;
public class EnumTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
System.out.println("Enter a size:(SMALL,MEDIUM,LARGE,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){
System.out.println("你选择的是最大码的。");
}
}
}
enum Size{
SMALL("S"),MEDIUM("M"),LARGE("L"),EXTRA_LARGE("XL");
private Size(String abbreviation){this.abbreviation = abbreviation;}
public String getAbbreviation() {
return abbreviation;
}
private String abbreviation;
}
结果为:
Enter a size:(SMALL,MEDIUM,LARGE,EXTRA_LARGE):
SMALL
size=SMALL
abbreviation=S
经验小结:
所有的枚举类型都是Enum类的子类。继承了很多Enum的方法。常用的toString返回枚举的常量名。如:
Size.SMALL.toString()返回字符串"SMALL"
toString的逆方法是静态方法valueOf
Size s = (Size)Enum.valueOf(Size.class,"SMALL");