【发布时间】:2011-06-03 03:34:47
【问题描述】:
对于 GWT 中的一些自定义客户端-服务器-通信代码,我想动态实现一个 Java 接口,类似于使用 java.lang.reflect.Proxy 完成的方式。由于 GWT 不包含任何反射支持,而且我讨厌编写笨重的代码生成器,我想知道这是否可以使用 JSNI 和 Overlay 类型来完成。
我的想法如下:
- 我有一些现有的 java 接口,以及它的方法及其签名、注释等的表示形式(因为实际的类对象在 GWT 中没有任何帮助)。
- 我将该表示传递给一些 JSNI 方法,该方法使用它来构造一个新的 Javascript 对象并在其上定义相应的方法。这些方法的实际实现相当简单,它们只是将参数写入一些数据结构并返回 null。
- 我从 JSNI 返回一个 Javascript 对象,该对象以某种方式可转换为接口类型。当在此实例上调用接口中的方法时,会调用第 2 步中定义的相应 Javascript 方法并保存参数。
有没有人尝试过类似的事情?这在原则上不起作用有什么原因吗?
提前致谢。
【问题讨论】:
标签: java javascript gwt reflection jsni