Java 简短的加法问题
2022-09-04 21:42:55
这可能已经在另一篇文章中得到了回答,但我只是不明白为什么某些东西不会在我的测试Java应用程序(1.7.0_01)中编译。
这将编译:
Short a = (short)17;
a = (short)2 + 1;
我知道“a + a”将产生一个整数。这编译得很好:
Short a = (short)17;
int shortTest = a + a;
那么为什么这不能编译呢?
Short a = (short)17;
a = (short)a + a;
另外,我假设你不能使用+=,-=等是对的吗?在空头上,因为转换为整数?如果可以执行这些操作,有人可以提供示例吗?
编辑 1
有一些投票关闭了这篇文章,因为有人建议它是原始类型“短”的副本 - 在Java中铸造。但是,我的示例围绕包装器“Short”对象展开。关于转换 Wrapper 对象有重要且更复杂的规则,我认为这是需要关注的。
另外,正如我的原始帖子所示,我正在寻找第3个代码块背后的“为什么”。我也想知道是否可以使用“+=”,“-=”等...在短包装器上。