gpt4 book ai didi

java - 如何从 GWT 中的 JSNI 方法调用 JSNI 方法

转载 作者:太空宇宙 更新时间:2023-11-04 06:29:51 24 4
gpt4 key购买 nike

是否可以通过这种方式从同一个类中的另一个 native 方法调用 native 方法?

public native JavaScriptObject mySECONDJsniMethod(String name) /*-{
//..
return secondVar;
}-*/;

public native JavaScriptObject myFIRSTJsniMethod(String name) /*-{
var secondVar = mySECONDJsniMethod(name);
//..
return firstVar;
}-*/;

在我的 Chrome 控制台中,它返回: Uncaught TypeError: mySECONDJsniMethod is not a function 。有任何想法吗?谢谢。

最佳答案

是的。在 myFIRSTJsniMethod() 的 JSNI 中,使用正常的 JSNI 语法来调用 Java 方法。

例如,如果这两个方法位于 com.mycompany.Test 类中,您可以像这样调用 mySECONDJsniMethod():

public native JavaScriptObject myFIRSTJsniMethod(String name) /*-{
var secondVar = this.@com.mycompany.Test::mySECONDJsniMethod(Ljava/lang/String;)(name);
//..
return firstVar;
}-*/;

请参阅 Accessing Java Methods and Fields from JavaScript 上的 GWT 文档了解更多信息。

编辑:这是一个完整的可编译示例:

package com.mycompany.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.JavaScriptObject;

public class SO26277049 implements EntryPoint {

@Override
public void onModuleLoad() {
final JavaScriptObject firstVar = myFIRSTJsniMethod("hello world!");
}

public native JavaScriptObject mySECONDJsniMethod(String name) /*-{
var secondVar = {
name: name
};
return secondVar;
}-*/;

public native JavaScriptObject myFIRSTJsniMethod(String name) /*-{
var secondVar = this.@com.mycompany.client.SO26277049::mySECONDJsniMethod(Ljava/lang/String;)(name);
$wnd.alert(secondVar.name);
var firstVar = secondVar;
return firstVar;
}-*/;
}

关于java - 如何从 GWT 中的 JSNI 方法调用 JSNI 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26277049/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com