簡體   English   中英

如何在GWT中深層復制任意對象?

[英]How can I deep copy an arbitrary object in GWT?

我有一個標記為Serializable的任意對象。 它有各種可變的子對象,代表貨幣金額,集合等。我希望能夠克隆這個對象,所以如果用戶修改它然后恢復它們的動作,我可以用新的克隆替換克隆。

這意味着我需要一個深層復制,因為我不希望用戶更改原始出現的子對象(例如,添加/插入集合中的項目)。

這些對象沒有實現Cloneable,因為它們是自動生成的,我也無法添加這樣的方法。

如果沒有痛苦的手寫,那么無論如何都要在GWT中實現同樣的深度克隆? 如果這是Java,我可以考慮將對象序列化為字節數組流並反序列化新副本。

我不能在GWT中這樣做。 我可能會利用RPC,因為稍后會將對象發送到servlet。 我只是不知道這是否容易。

有人知道我可以做一個簡單的深層復制嗎?

如果您有機會在域類中添加接口或注釋,則可以使用gwt-ent進行反射,並且可以通過反射輕松編寫自己的深層復制語義。 我已經使用這種技術來改善開發模式下的gwt序列化性能。

作為另一種解決方案,您可以使用gwt默認序列化機制進行深層復制,但不幸的是我沒有任何線索如何實現此目標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM