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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 顾磊磊 中级黑马   /  2013-8-7 19:37  /  1161 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


如上图所示,同样是unchecked修饰,不检测溢出,
为何中间那条myDirection=unchecked((Orientation)334m)不能编译,直接提示不能转换。(只要大于byte的上限就出现这样情况)
但是如果这样写成myDirection=unchecked((Orientation)334)就没有问题,
这是为何?

3 个回复

正序浏览
changvh 发表于 2013-8-8 07:23
因为 Byte 表示一个8 位无符号整数,它只能表达区间[0,255]之间的整数。 400 明显超过了这个范围,400是一个 ...

如果是int型的400就可以这么写。因为unchecked已经表示不检测溢出了啊,decimal类型的400为什么还会检测???
回复 使用道具 举报

回帖奖励 +1

因为 Byte 表示一个8 位无符号整数,它只能表达区间[0,255]之间的整数。 400 明显超过了这个范围,400是一个int的常量,而int不支持到byte的隐式转换
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马