Thread.sleep
以long
为参数,以毫秒为单位。但是,除非使用1000L
之类的字母符号另有说明,否则数字文字将被视为整数。那么为什么这个有效的代码?
Thread.sleep(1000);
答案 0 :(得分:5)
因为int
可以升级为long
。
long
比int
更大(更多位),因此int
可以转换为long
而不会丢失任何数据。走另一条路可能会有问题,因为数据可能会丢失 - 因此这将是一个错误。
答案 1 :(得分:3)
这是一个有效的扩展转换,另请参阅JLS-5.1.2. Widening Primitive Conversion,其中部分
对基本类型的19个特定转换称为扩展基元转换:
int
至long
,float
或double