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.LongJSNIにとって不透明なオブジェクトになります
  • それでも、JSNIにをlong渡すことができないため、機能しません。longこれは、すべてのlongをJS番号として表すことができるわけではないためです。JSに相当するものNumberはですdouble

をにコピーLong[]し、値を値JsArrayNumberにダウンキャストするときに発生する可能性のあるオーバーフローに対処する必要があります。longdouble

于 2012-10-25T10:33:59.240 に答える