首页 > 代码库 > Java随笔:混合类型表达式类型转换问题
Java随笔:混合类型表达式类型转换问题
混合表达式处理“坑”很多,看看下面这段代码:
short x = 0;int y = 123456;x += y;System.out.println(x);
按照正常的理解 x+=y 等价于 x = x+y
这里将int型的 y 强转为short型 x,会报告错误:
错误: 不兼容的类型: 从int转换到short可能会有损失
但是,上面的代码居然没有报错。
这里就是混合类型表达式默认进行了一次类型转换,将结果转换为左侧变量的类型,即x类型的short。
由于123456越界了,所以结果就是-7616。
总结
隐藏的类型转换很有可能编译不报错,但实际结果却对数值进行了截断。
当+=左右两边类型不相等时,一定要注意。
Java随笔:混合类型表达式类型转换问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。