2012-06-16 54 views
0

的我有這樣通長[],而不是長

void doSmth(Long... paramg){ 
} 

功能,但我不能通過long[]而不是Long...。爲什麼?我認爲這是相同的事情(它們之間有什麼區別?)。

我該如何通過long []而不是Long ...?

+1

長是基本類型和長是一個類。自動裝箱使它們看起來幾乎完全相同,但是數組不是自動裝箱的。所以只需傳遞一個Long []'。 –

+0

@GregS謝謝。看起來像我期望太多) –

+1

@biovamp數組自動裝箱不能工作,沒有明顯的開銷,這不是一件好事,因爲人們可能會期望它的效率超過它的魔力。您將不得不更改簽名或創建一個新數組並手動循環。 – Voo

回答

7

long可以autoboxedLong,而不是陣列(long[]

long[]工作應該是

void doSmth(long... paramg){ 
}