簡體   English   中英

從JSNI調用Java方法

[英]Call Java method from JSNI

我想從JSNI變量successHandler()調用Java方法test() successHandler() 但是,我收到錯誤

[ERROR] - Line 110: Missing qualifier on instance method 'com.gw.myProject.client.presenter.payments.PaymentProgramPresenter.test'

原始代碼:

public static native void purchase(String token) /*-{

      var successHandler = function(status){ // Success handler
        return @com.gw.myProject.client.presenter.payments.PaymentProgramPresenter::test()();
      } 
      var failureHandler = function(status){ // Failure handler
        // $wnd.alert('testing');
      }

      $doc.purchaseAction(token, successHandler, failureHandler);
    }-*/;

    public void test() {
        this.onHide();
    }

你的test()不是靜態的。 因此,您需要將其設置為靜態或指定實例或使購買非靜態。

(此錯誤是GWT版本的“ Cannot make a static reference to the non-static method methodName() from the type TypeName ”)

public native void purchase(String token) /*-{

  var instance = this;

  var successHandler = function(status){ // Success handler
    return instance.@com.gw.myProject.client.presenter.payments.PaymentProgramPresenter::test()();
  } 
  var failureHandler = function(status){ // Failure handler
    // $wnd.alert('testing');
  }

  $doc.purchaseAction(token, successHandler, failureHandler);
}-*/;

public void test() {
    this.onHide();
}

你可以在gwtproject.org找到一個真正好的教程

還有一個提示。 如果你在JSNI中創建javascript回調,請用en $ entry() - 函數包裝它們:

$doc.purchaseAction(token,$entry( successHandler ), $entry( failureHandler));

這將啟用GWT uncaughtExceptionHandler

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM