+= 和 + 运算之后赋值有什么区别

short s = 8;
s = s + 4;
s += 4;

java中为何第二句编译出错,第三句没有问题?将short改为int编译全通过。
求解释两种运算的区别

阅读 3.1k
2 个回答

为何第二句出错?
因为short和int相加不等于short,并且没强转就赋值给了short
+=隐式的包含了强转结果为short

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题