由于好奇心,我检查了autobeans的生成方式。我发现它使用sun.misc.ProxyGenerator类生成autobean proxies,并且它使用reflections。但是我不明白,它在客户端如何工作。使用reflections的那些方法是否已编译为javascript?这是否意味着我可以在客户端上使用自己的反射?

最佳答案

代理实例仅在反射有效的真实JVM的服务器上使用。您认为GWT代码不能使用通用反射是正确的。

要在客户端上生成它们,请改用GWT生成器。当GWT编译器仍在运行时(这在真实的JVM中),这会进行所有反射,并创建实现您的autobean接口和工厂的新类。

com.google.web.bindery.autobean.gwt.rebind.AutoBeanGenerator类主要负责这项工作,并且com.google.web.bindery.autobean.gwt.rebind.model软件包的内容(在某种程度上还包括com.google.web.bindery.autobean.shared)有助于这项工作。

07-24 09:27