2012-10-25 86 views
0

我如何通過一個Long[]陣列或List<Long>到JSNI功能是這樣的:傳遞多頭排列的JSNI功能

public native void updateData(Long[] data)/*-{ 
    waveform.update({ 
     data: [0.5, 1.0, 0.5, 1.0] 
    }); 
}-*/; 

回答

3

你不能,因爲各種原因。

  • Java數組(無論其類型)是否爲JSNI的不透明對象。您必須使用JsArray(或JsArrayNumber或其他)。相同的java.util.List
  • java.lang.Long將是一個不透明物體JSNI
  • 即使long它是行不通的,因爲你不能傳遞到long JSNI。這是因爲並非所有的多頭都可以表示爲JS數字。 JS Number的等價物是double

你有你的Long[]複製到一個JsArrayNumber,併爲應對可能的溢出時,下鑄造long值轉換爲double值。