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