UIではなく、GWTとオーバーレイ、JavaScriptオーバーレイタイプを使用して、JSON入力のdoubleの配列を読み取り、Highchartsに送信しています。データポイントがnullでない限り、以下は正常に機能します。
public final native JsArrayNumber getPoints() /*-{
return this.points;
}-*/;
ただし、null は Highcharts の欠損値を表します。残念ながら、どのインデックスが null であるかを知る方法はありません。get() メソッドは HostedModeException をスローし、
double 以外の何かが JSNI メソッド '@com.google.gwt.core.client.JsArrayNumber::get(I)' から返されました: 未定義の型の JS 値、期待される double
興味深いことに、私自身が null を生成することがありますが、toString() メソッドは問題なく機能します。
JsArrayNumber test = jsSeries.getPoints();
test.set(test.length()+2, 24.2);
System.out.println(test.toString());
System.out.println(test.length());
for (int i = 0; i < test.length(); i++) {
System.out.println(test.get(i));
}
Output:
163,1,276,0,547,0,628,,,24.2
10
163.0
1.0
276.0
0.0
547.0
0.0
628.0
(and here comes the exception at the first null entry).
null 値を照会することはできませんが、それらを生成することはできます。これには正当な理由があると確信しており、私はGWTに非常に慣れていません。
一部のエントリが null である可能性がある場合に、オーバーレイを使用して double 値の配列を読み取る適切な方法は何でしょうか?
(今のところ、自分で確認できるように別の関数 isNull(index) を追加しました)。