Lui*_*sk4 0 java literals implicit-conversion
默认情况下,Java假定您使用文字定义int值.
short x = 20; // There is an implicit conversion
Run Code Online (Sandbox Code Playgroud)
但是当我们在算术表达式中使用"x"变量时,例如:
short y = x * 2; //DOES NOT COMPILE
Run Code Online (Sandbox Code Playgroud)
我们知道20*2的结果是40,可以很容易地拟合成一个短变量.到底是怎么回事?
因为x不是最终的,所以当程序到达以下点时,无法保证变量仍为20:
short y = x * 2;
Run Code Online (Sandbox Code Playgroud)
编译器只考虑你的非最终变量x可能在那个时候(通过任何方式)改变的可能性,因此不会将其简单地视为20.如果你将x定义为final,隐式会话将起作用:
final short x = 20; // There is an implicit conversion
short y = x * 2; //DOES COMPILE
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |