如何在纯Java环境中处理JSNI方法
How are JSNI methods handled in a pure Java environment?
我使用以下GWT JSNI代码,该代码应在服务器和客户端使用的共享包中使用:
public static native void alert(String msg) /*-{
$wnd.alert(msg);
}-*/;
public void doSomething() {
alert("test");
}
当编译器编译成纯Java时,它在服务器上对这些代码做什么?有什么方法可以提供纯Java版本的代码来替代JSNI部分吗
从JVM的角度来看,它们是native
方法/*-{ … }-*/
是特定于GWT的语法,从Java编译器的角度来看,它只是一个注释。
因此,如果在JVM中调用,它将以UnsatisfiedLinkError
失败。
如果您想为GWT与JVM提供特定的实现,如果JVM特定的代码可以翻译为GWT,则可以使用GWT.isScript()
(您可以尝试用@GwtIncompatible
对其进行注释,看看GWT是否会抱怨),或者可以使用超级源;请参阅中的"用另一个包实现覆盖一个包"http://www.gwtproject.org/doc/latest/DevGuideOrganizingProjects.html#DevGuideModuleXml
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- keyup事件处理程序更改焦点不适用于快速键入
- 如何使用jquery处理php循环通过元素
- angular.js没有'无法在PhoneGap中处理视图标记
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 提示使用服务器端事件处理程序激活JavaScript
- javascript:如何在antlr生成的Lexer中进行错误处理
- 如何在GoogleWeb工具包(GWT)中从JSNI调用接口(实例化)
- 如何编写一个具有公共标头的批处理
- 在同一个服务工作者中处理service-worker.js有任何影响吗
- 如何处理node.js节点mongodb中的连接和查询队列
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- 如何处理10页以上的静态页眉/页脚
- 将事件处理程序绑定到任何可能的事件
- 通过ajax将坐标传递到php服务器端,并在处理后检索到javascript
- python到“;流“;字典处理
- 使用javascript进行实时图像处理
- 导入jQuery脚本获胜'我不处理html文件
- Javascript无法处理表单提交
- 如何在纯Java环境中处理JSNI方法