GWT中的java.lang.reflect.Proxy类功能通过JSNI

时间:2011-06-03 03:34:47

标签: java javascript gwt reflection jsni

对于GWT中的一些自定义客户端 - 服务器通信代码,我想动态实现类似于java.lang.reflect.Proxy的Java接口。由于GWT不包含任何反射支持,我不喜欢编写一个笨重的代码生成器,我想知道是否可以使用JSNI和Overlay类型来完成。

我正在考虑以下几点:

  1. 我有一些现有的java接口,并以某种方式表示其方法及其签名,注释等(因为实际的类对象在GWT中没有任何帮助)。
  2. 我将该表示传递给一些JSNI方法,该方法使用它来构造一个新的Javascript对象并在其上定义相应的方法。这些方法的实际实现相当简单,它们只是将参数写入某个数据结构并返回null。
  3. 我从JSNI返回一个Javascript对象,它以某种方式可以转换为接口类型。当在此实例上调用接口的方法时,将调用在步骤2中定义的相应Javascript方法并保存参数。
  4. 有没有人尝试类似的东西?是否有理由说这不能原则上起作用?

    提前致谢。

1 个答案:

答案 0 :(得分:0)

什么阻止你在Java中做同样的事情?有一个工厂方法,您传递一些数据,它返回您的接口的实现。既然你说实现是非常简单的,那么你将拥有一组有限的具体类。