gpt4 book ai didi

java - 帮助通过 JSNI 调用传递复杂对象以绕过静态范围

转载 作者:行者123 更新时间:2023-12-02 11:06:26 25 4
gpt4 key购买 nike

所以我有一个 GWT 应用程序,我正在尝试调用一个函数来从外部按钮更改应用程序的 View 。通常这被称为“this.internalFunction('string')”。问题是 JSNI 通过静态方法工作,因此有问题的对象丢失了。解决方案:将应用程序的对象本身传递给 JSNI 调用并从那里调用该对象的函数调用!解决方案的问题:这不起作用。 :(

类看起来像这样:

package blah.package;
public class Foo implements A, B {
public native void initChangeFunc() /*-{
$wnd.jsChangeView = $entry(this.@blah.package.Foo::doSomething
(Lblah.package.Foo;)(this));
//Pass this to the function call to do calls on app object
}-*/;
public void doSomething(Foo obj) {
//Change view here.
obj.internalFunction("parameter");
};
public void internalFunction(String param) {
//Do stuff with param.
}
}

在模块加载时,调用 initChangeFunc() 并访问页面本身的 jsChangeView()。

编译错误提示编译器找不到 blah.package.Foo,那是因为我的参数类型签名(Lblah.package.Foo 部分)是错误的。
[ERROR] Line 64: Expected a valid parameter type signature in JSNI method reference

最佳答案

首先,尽量不要断行调用 Foo::doSomething ,并检查它是否有帮助。

关于java - 帮助通过 JSNI 调用传递复杂对象以绕过静态范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6652284/

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