LPD*_*LPD 6 javascript gwt clone
在浏览此链接时 如何在javascript中深入克隆
我遇到了一个通用克隆方法(在接受的答案中).我尝试了直接在javascript中运行它运行给出了完美的输出.
我将该代码放在本机标记中,并尝试克隆GWT中的对象.
我想要克隆的班级是
private class Container
{
Integer i = 5;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试这样做时,它只是给我一个同样的对象.有人可以帮忙吗?如果不清楚的话,问我什么.万分感谢.
Jonathan 是对的:方法(也是 GWT 中唯一的方法)是使用https://code.google.com/p/google-web-toolkit/wiki/AutoBean
这可能有点尴尬,但它工作得很好,因为许多概念都与之相关(RequestFactory 中的 EntityProxy 也依赖于该机制,它是 GWT 的未来)。
深度 json 持久性也适用于 auto beans。
您唯一要做的就是创建一个描述您的类的接口(并在您的类中实现它):
public interface ContainerBean {
Integer getI();
void setI(Integer i);
}
Run Code Online (Sandbox Code Playgroud)
然后创建你的工厂接口
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);
}
Run Code Online (Sandbox Code Playgroud)
现在你可以包装你的对象并克隆它(通过 json )
可以克隆 AutoBean 及其中存储的属性值。clone() 方法有一个布尔参数,将触发深复制或浅复制。与 AutoBean 关联的任何标记值都不会被克隆。无法克隆包装委托对象的 AutoBean。
https://code.google.com/p/google-web-toolkit/wiki/AutoBean#clone()
因此请改用此方法: https ://code.google.com/p/google-web-toolkit/wiki/AutoBean#AutoBeanCodex
| 归档时间: |
|
| 查看次数: |
1940 次 |
| 最近记录: |