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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© OnlyStyle 中级黑马   /  2014-10-28 22:46  /  1669 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  我记得switch()只能接收int和枚举类型的变量,但是测试byte、char、short也可以,考虑到这三个可以自动转换成int,想问问大家,当这三种类型变量被switch()接收时,类型是被提升了么?如果被提升了,那么是只是在switch块内有效的提升还是可以延伸到switch外的提升啊?

评分

参与人数 1黑马币 +1 收起 理由
杨佳名 + 1

查看全部评分

5 个回复

倒序浏览
毕老师视频里说switch()可以接收int,byte,char,short。没有说只能int,应该不会自动转换的。
回复 使用道具 举报
冥夜 发表于 2014-10-29 22:37
毕老师视频里说switch()可以接收int,byte,char,short。没有说只能int,应该不会自动转换的。 ...

enum也可以的。
回复 使用道具 举报
本帖最后由 水点 于 2014-10-30 13:08 编辑

switch后面的语句控制表达式可以是byte,short,int,char四个整数类型和枚举类型,Java7中改进了switch语句,运行java.lang.String类型,但不能是StringBuffer和StringBulider这两种字符串类型。

QQ图片20141030130757.jpg (174.37 KB, 下载次数: 291)

QQ图片20141030130757.jpg
回复 使用道具 举报
水点 发表于 2014-10-30 13:06
switch后面的语句控制表达式可以是byte,short,int,char四个整数类型和枚举类型,Java7中改进了switch语句, ...

嗯,学习了。
回复 使用道具 举报
java 1.6(包括)以前,只是支持等价成int 基本类型的数据:byte ,short,char,int(其他的都不可以)。
1.7加入的新特性可以支持String类型的数据。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马