1

Java メソッドの戻り値を読み取って JS 変数に保存しようとしています。ドキュメントによると、これは仕事をするはずです:

値を返すネイティブ Java メソッド:

static public double getValue() {
    return 21.0;
}

手書きの JS からネイティブ Java を呼び出すための参照の作成:

$wnd.showValue=function() {
    val=$entry(@whateverpackage.thisclass::getValue());
    alert("Value: "+val);
}

そして最後に、プレーンな JS で:

showValue();

アラート ボックスに表示される出力は次のとおりです。

Value: function(){try{return hh(c,this,arguments)}catch(b){throw b}}

戻り値を取得する代わりに、GWT コンパイラが生成する関数を取得し、それを変数にダンプすると推測しています。これの何が問題なのですか?私が言ったように、公式ドキュメントに非常によく似た例があるので、これが方法です。前もって感謝します。

4

1 に答える 1

4

関数参照の後に、ブラケットのペアを追加する必要があります。最初のペアには、関数シグネチャ (パラメーターの型を記述) が含まれています。関数を実行するのではなく、実際の関数を$entry()

だからこれを変える

val=$entry(@whateverpackage.thisclass::getValue());

これに

var val = $entry(@whateverpackage.thisclass::getValue()());

ところで、潜在的なスコープの競合を防ぐためにvarキーワードを追加しました。

于 2011-11-21T11:10:08.130 に答える