乔纳森是对的:方法(也是 GWT 中唯一的一种)是使用https://code.google.com/p/google-web-toolkit/wiki/AutoBean
这可能看起来很尴尬,但它工作得很好,因为许多概念都与此相关(RequestFactory 中的 EntityProxy 也依赖于该机制,它是 GWT 的未来)。
深度 json 持久性也适用于自动 bean。
您唯一需要做的就是创建一个描述您的类的接口(并在您的类中实现它):
public interface ContainerBean {
Integer getI();
void setI(Integer i);
}
然后创建你的工厂界面
interface MyFactory extends AutoBeanFactory {
// Factory method for a simple AutoBean
AutoBean<ContainerBean> container();
// Factory method for a non-simple type or to wrap an existing instance
AutoBean<ContainerBean> container(ContainerBean toWrap);
}
现在你可以包装你的对象并克隆它(通过json)
clone() 可以克隆 AutoBean 和存储在其中的属性值。clone() 方法有一个布尔参数,将触发深拷贝或浅拷贝。与 AutoBean 关联的任何标记值都不会被克隆。包装委托对象的 AutoBeans 不能被克隆。
https://code.google.com/p/google-web-toolkit/wiki/AutoBean#clone()
因此请改用此方法:
https ://code.google.com/p/google-web-toolkit/wiki/AutoBean#AutoBeanCodex