我的一位同事向我提出这个问题,我有点困惑.
int i = 123456;
short x = 12;
Run Code Online (Sandbox Code Playgroud)
该声明
x += i;
Run Code Online (Sandbox Code Playgroud)
编译但是很好
x = x + i;
Run Code Online (Sandbox Code Playgroud)
不
Java在这做什么?
ars*_*jii 19
int i = 123456;
short x = 12;
x += i;
Run Code Online (Sandbox Code Playgroud)
实际上是
int i = 123456;
short x = 12;
x = (short)(x + i);
Run Code Online (Sandbox Code Playgroud)
虽然x = x + i很简单x = x + i.它不会自动转换为a short并因此导致错误(x + i属于类型int).
除了仅计算一次之外,表单的复合赋值表达式
E1 op= E2等效于E1 = (T)((E1) op (E2)),whereT的类型.E1E1
| 归档时间: |
|
| 查看次数: |
7535 次 |
| 最近记录: |