gpt4 book ai didi

java - 关于字节添加和分配的有趣观察

转载 作者:行者123 更新时间:2023-12-01 16:37:16 25 4
gpt4 key购买 nike

今天在帮助某人时,我遇到了一个有趣的问题,但我无法理解原因。当使用 += 时,我们不需要显式转换,但是当我们使用 i+i 时,我们需要显式转换。找不到具体原因。任何意见将不胜感激。

public class Test{
byte c = 2;
byte d = 5;

public void test(String args[])
{
c += 2;
d = (byte) (d + 3);
}
}

最佳答案

Java 的定义使得 += 和其他复合赋值运算符自动将结果转换为正在更新的变量的类型。因此,使用 += 时不需要强制转换,但仅使用普通运算符时则需要强制转换。您可以在 Java 语言规范 http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.26.2 中看到这一点。

具体来说,表达式

a op= b

相当于

(a = (type of a)((a) op (b));

希望这有帮助!

关于java - 关于字节添加和分配的有趣观察,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61931234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com