A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

刘晓GGG

中级黑马

  • 黑马币:0

  • 帖子:13

  • 精华:0

© 刘晓GGG 中级黑马   /  2013-6-2 23:51  /  1150 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. enum Gender
  2. {       
  3.         MAN(),WOMAN{},NONE(){} ;
  4.         private Gender(){}
  5.        
  6.         public String toString()
  7.         {
  8.                 String ret = super.toString();
  9.                 switch(this)
  10.                 {
  11.                         case MAN:
  12.                                 ret = "男";
  13.                         break;
  14.                        
  15.                         case WOMAN:
  16.                                 ret = "girl";
  17.                         break;
  18.                        
  19.                         default:
  20.                                 ret = "保密";
  21.                 }
  22.                 return ret;
  23.         }

  24. }
复制代码
问题:switch的参数里,为什么能传一个this进去?this是本类对象的引用,具体的引用是怎么指向的?switch不就只能支持那几种基本数据类型和String类型吗?


评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1

查看全部评分

3 个回复

倒序浏览
在java1.5以前,switch操作仅能对int、short、char和byte进行操作。而在1.5中,switch增加了对枚举类型的支持,因为枚举类型仅含有有限个可以使用整数代替的枚举常量,这太适合使用switch语句了!就像你写的代码中那样,你在swtich表达式中放置枚举类型变量,就可以在case标示中直接使用枚举类型中的枚举常量了

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 对String支持是1.7新特性

查看全部评分

回复 使用道具 举报
同意楼上的说法,现在jdk可以int,byte,short,char,string,枚举了
回复 使用道具 举报
楼主你好  如果问题已经解决  请把帖子的类型改为已解决  然后会给你发几个粽子吃
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马