Tiger学习 之 switch中的Enum

Tiger之前的switch只能运用 int、short、char、bye值(不能用String很麻烦...),现在支持Enum...
引用

switch (te.getEn()) { //te.getEn() 取得一个Enum对象,进行case
  case A : System.out.println("Hello A");
  case B : System.out.println("Hello B");
//奇怪吧?关于 case A,case B,不能把Enum加上,如 EnumFirst.A 会出错的...所以要小心,必须case到所有的值(如果需要)
  default: System.out.println("Hello default"); //推荐加上default,防止Enum变化,没有捕获到
}


关于Enum的编译...
编译的时候不会转化成case ...(nt、short、char、bye)值的,有两种处理方式:
1.会创建一个 jump table,然后通过ordinal来处理(同一编译单元)
2.转换成if else ....判断(不同一编译单元)

你可能感兴趣的:(java 5.0)