Thread.sleep
以long
作为毫秒参数。但数字文字被视为整数,除非另有指定,如1000L
这样的字母符号。那么为什么这个有效的代码?Java Thread.sleep long或int?
Thread.sleep(1000);
Thread.sleep
以long
作为毫秒参数。但数字文字被视为整数,除非另有指定,如1000L
这样的字母符号。那么为什么这个有效的代码?Java Thread.sleep long或int?
Thread.sleep(1000);
因为int
可以升级为long
。
long
度较大(比特)比int
等int
可以转换为long
而没有任何数据丢失。换个方式可能会有问题,因为数据可能会丢失 - 因此这将是一个错误。
这是一个有效的宽化转换,也看到JLS-5.1.2. Widening Primitive Conversion它说部分的原始类型
19点具体的转换被称为宽元转换:
int
到long
,float
或double
整数可以提升为更宽的整数类型。 'long big = 2;'是有效的代码,2是“无限扩大”的。 – markspace
@markspace你为什么评论而不是回答?如果你回答我会接受你的答案。 – user5859585