JSNI:JsArray <jsarraynumber>类型签名</jsarraynumber>

时间:2013-05-22 20:59:54

标签: java javascript gwt jsni

我的JavaScript代码为我提供了一组float值数组:

var serverData = new Array();
var fArray = new Array();
// .. calc mx and my here
fArray.push(mx);
fArray.push(my);
this.serverData.push(fArray);

var out = window.letServerWork(this.serverData);

我想在服务器上使用它。 this.serverData看起来像这样:

{ 

0:  0: 1.123
    1: 1.459

1:  0: 0.543
    1: 1.679

2:  0: 1.157
    1: 0.987
}

因此,我需要知道此通话的正确签名。这是:

  public static native void exportDoLinearRegression() /*-{ 
        $wnd.letServerWork = $entry(@ew.server.algorithm.LinearRegression::doLinearRegression(Lcom/google/gwt/core/client/JsArray<Lcom/google/gwt/core/client/JsArrayNumber;>;));
  }-*/;

错了,但看起来应该是这样的。有人知道签名的样子是什么样的吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

事实证明,没有必要告诉泛型类型。如果GWT编译器知道会有JsArray,那么它很高兴。然后,Java函数定义泛型类型。这就是它对我有用的方式:

  public static String doLinearRegression(JsArray<JsArrayNumber> points) {

    for(int i = 0; i < points.length(); i++) {
      System.out.println(points.get(i).get(0) + " " +  points.get(i).get(1));
      // do stuff
    }
    return result;
  }

  public static native void exportDoLinearRegression() /*-{ 
        $wnd.letServerWork = $entry(@ew.server.algorithm.LinearRegression::doLinearRegression(Lcom/google/gwt/core/client/JsArray;));
  }-*/;