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