assertEquals(new Long(42681241600) , new Long(42681241600));
的Java的JUnit的assertEquals我嘗試檢查兩個長的數字,但是當我嘗試編譯此我得到與龍
integer number too large: 42681241600
錯誤。文檔顯示有一個Long,Long的assertEquals方法,但它沒有被調用。
assertEquals(new Long(42681241600) , new Long(42681241600));
的Java的JUnit的assertEquals我嘗試檢查兩個長的數字,但是當我嘗試編譯此我得到與龍
integer number too large: 42681241600
錯誤。文檔顯示有一個Long,Long的assertEquals方法,但它沒有被調用。
你想:
assertEquals(42681241600L, 42681241600L);
您的代碼打電話的assertEquals(對象,對象)。您還需要在數字末尾附加'L'字符,以告知Java編譯器該數字應該編譯爲long而不是int。
42681241600被解釋爲一個int
文字,它太大了。附加一個'L'使其成爲long
文字。
如果你想獲得的所有的技術,你可以看一下§3.10.1 of the JLS:
文字的整數
long
類型的,如果它與ASCII字母L
或l
(ELL)後綴;否則它是int
(§4.2.1)。後綴L
是首選,因爲字母l
(ell)通常很難與數字1
(一)區分開來。
在你的電話號碼的末尾添加一個 「L」,如:
new Long(42681241600L)
在Java中
,每一個文字數被視爲一個整數。
你還應該考慮一般使用Long.valueOf,因爲這可能會允許一些優化:
Long val = Long.valueOf(1234L);
從J2SDK:
公共靜態龍的valueOf(長L)
返回一個長實例,代表 指定的長整型值。如果不需要新的 龍實例,這 方法一般應在 優先使用構造 長(長),因爲這種方法很可能 通過緩存 經常請求的值,以產生顯著更好的空間 和時間性能。