因为Java语言规范这么说
请注意,二进制数值升级执行值集转换(第5.1.13节),并且可能执行拆箱转换(第5.1.8节)。
数字 *** 作数上加法表达式的类型是其 *** 作数的提升类型。
并且,关于数字促销,
扩展原语转换(第5.1.2节)适用于转换以下规则指定的一个或两个 *** 作数:
- […]
- 否则,两个 *** 作数都将转换为type
int。
因此,
byte价值被提升为
int价值并相加。表达式的结果是提升的类型,因此是
int。
您可以简单地转换结果
byte z = (byte) (b + a);
但请注意上溢/下溢。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)