2012-03-12 6 views
1

私は比較的新しいgwtで、JsArrayIntegerを使用すると問題が発生します。ここに私のコードは次のとおりです。結果は '未定義' されgoogle gwt JsArrayInteger(JavaScriptObject)JSNI経由で使用する

package com.google.gwt.sample.stockwatcher.client;  
    public class StockWatcher implements EntryPoint { 
     JsArrayInteger a; 
     public void onModuleLoad() { 
      a = (JsArrayInteger) JsArrayInteger.createArray(); 
      a.push(1); 
      a.push(2); 
      a.push(4); 
      a.push(5); 
      test(); 
     } 
     public static native void test() /*-{ 
      var p = [1,2,3,4,5,6]; 
      var q = [email protected]::a; 
      alert(q); 
      alert(p); 
     }-*/; 
    } 

と[1,2,3,4,5,6]の代わりに[1,2,3,4,5]と[1,2 、3,4,5,6]。フィールドaを使い、その配列を操作したい(サードパーティのライブラリに渡す)。

チュートリアルhttp://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsJSNI.htmlでは、デフォルトのJavaScriptObjetcsの使用方法は説明されていませんでした。誰かがエラーを見つけましたか?

敬具、

マイケル

答えて

1
public static native void test() /*-{ 
     var p = [1,2,3,4,5,6]; 
     var q = [email protected]::a; 
     alert(q); 
     alert(p); 
    }-*/; 

このメソッドはstaticですが、thisを参照していることに注意してください。インスタンスを渡してthisの代わりに使用するか、またはメソッドをstaticに変更します。

+0

私はどのように愚かなのですか...私は複雑な問題については...非常にありがとう! – Michael

+0

JSNIコードだけが、「this」は意味をなさないと言うことができますが、それはJSの仕組みではありません。そのため、多くの人々が最初にGWTを使用しています。 –

関連する問題