0

我的 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;>;));
  }-*/;

是错误的,但它应该看起来像这样。有人知道签名必须是什么样子才能起作用吗?

谢谢!

4

1 回答 1

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;));
  }-*/;
于 2013-05-23T08:34:56.817 回答