日期:2014-05-20  浏览次数:20687 次

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
------解决方案--------------------
你用的是什么编译器啊?
我这里都能通过,运行的也正确啊。
------解决方案--------------------
金陵男科医院,我想能够解决楼主的问题。