通过JSNI在GWT中实现类似java.lang.reflect.Proxy的功能
java.lang.reflect.Proxy-like functionality in GWT via JSNI
对于GWT中的一些自定义客户端-服务器通信代码,我想动态实现一个Java接口,类似于使用Java.lang.reflect.Proxy的方式。由于GWT不包括任何反射支持,而且我不喜欢编写笨重的代码生成器,我想知道是否可以使用JSNI和Overlay类型来实现这一点。
我的想法如下:
- 我有一些现有的java接口,以及它的方法及其签名、注释等的表示(因为实际的类对象在GWT中没有任何帮助)
- 我将该表示传递到一些JSNI方法中,该方法使用它来构造一个新的Javascript对象并在其上定义相应的方法。这些方法的实际实现相当琐碎,它们只是将参数写入一些数据结构中并返回null
- 我从JSNI得到了一个Javascript对象,它可以以某种方式转换为接口类型。当在该实例上调用接口中的方法时,将调用步骤2中定义的相应Javascript方法并保存参数
有人尝试过类似的事情吗?这在原则上不起作用有什么原因吗?
提前谢谢。
是什么阻止您在Java中做同样的事情?有一个工厂方法,将一些数据传递给它,它将返回接口的实现。既然您说实现非常琐碎,那么您将拥有一组有限的具体类。
相关文章:
- javascript error"java.lang.NullPointerException" i
- JSONSTORE Mobilefirst 7.1 error java.lang.NoClassDefFoundErr
- java.lang.NullPointerException servlet
- 为什么 Servlet.service() for servlet jsp 抛出了异常 java.lang.NullPo
- java.io.IOException: write beyond end of stream OR java.lang
- LiveConnect 无法初始化 firefox 扩展 java.lang.reflect.InvocationTar
- 从Java Applet调用方法,Javascript返回[Ljava.lang.String;@7ac79dfa
- Running Java from Nashron JavaScript - Exception java.lang.C
- ClassCastException - JavaScriptObject 不能强制转换为 java.lang.Stri
- 使用Java.lang.reflect.array.newInstance创建一个带有Java反射的二维数组
- 谷歌图表:java.lang.NoClassDefFoundError:com/Google/gwt/core/clie
- java.lang.RuntimeException:无法生成DH密钥对
- java.lang.NoSuchFieldError: reportUnusedDeclaredThrownExcept
- 我的应用程序崩溃,出现java.lang.IollegalArgumentException
- JavaScript使用java.lang.Runtime.getRuntime()运行DOS命令
- java.lang.Double.longBitsToDouble function in JavaScript
- JavaScript analog of java.lang.Optional?
- 在JavaScript中创建输入隐藏类型元素数组,并在Servlet中获取值,但java.lang.NullPointe
- 无法将Nan转换为Java.lang.long
- Rhino conversion java.lang.String to JavaScript String