由于好奇心,我检查了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
)有助于这项工作。