raw*_*wnd 30 java types operators type-conversion implicit-conversion
为什么:
public class Addition {
public static void main() {
int a = 0;
double b = 1.0;
a = a + b;
System.out.println(a);
}
}
Run Code Online (Sandbox Code Playgroud)
不编译但是:
public class Addition {
public static void main() {
int a = 0;
double b = 1.0;
a += b;
System.out.println(a);
}
}
Run Code Online (Sandbox Code Playgroud)
编译.
Tof*_*eer 23
int = int + double本质上是
int = double + double
如果没有铸造你就不能这样做......
int + = double将结果强制为int,而另一个则需要强制转换.
所以a =(int)(a + b);
应该编译.
编辑:根据评论中的要求...这里是更多阅读的链接(不是最简单的阅读,但最正确的信息):http://docs.oracle.com/javase/specs/jls/se7/html/ JLS-15.html#JLS-15.26.2
| 归档时间: |
|
| 查看次数: |
5497 次 |
| 最近记录: |