0

如何传递Long[]数组或List<Long>JSNI 函数,如下所示:

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

1 回答 1

3

你不能,因为各种原因。

  • Java 数组(无论它的类型)对于 JSNI 来说都是不透明的对象。您必须使用JsArray(或JsArrayNumber或等)。对于一个java.util.List.
  • java.lang.Long将是 JSNI 的不透明对象
  • 即使使用long它也行不通,因为您不能将 a 传递long给 JSNI。这是因为并非所有的 long 都可以表示为 JS 数字。JS 的等价物Numberdouble.

您必须将您的值复制Long[]到 a中,并在将值向下转换为值JsArrayNumber时应对可能的溢出。longdouble

于 2012-10-25T10:33:59.240 回答