short的问题
short i=1;
i=i+1;error
i+=1;却可以,why?
大家知道为什么吗?
------解决方案--------------------short i=i+1
因为 1 是 int类型 i是short类型 故不能相加
而 i+=1 的类型一样所以可以
------解决方案--------------------i+=1能够自动时行类型转换,参看JLS
short i=9;
i+=1;
上面的字节码如下:
0: bipush 9
2: istore_1
3: iload_1
4: iconst_1
5: iadd
6: i2s// int转换成short
7: istore_1
8: return
------解决方案--------------------你用的是什么编译器啊?
我这里都能通过,运行的也正确啊。
------解决方案--------------------金陵男科医院,我想能够解决楼主的问题。