0
我們使用協議緩衝區將數據存儲在數據庫中(作爲blob)。在某個時候,我們再次閱讀它們,需要修改它們並再次存儲它們。將Google協議緩衝區消息的結構複製到構建器對象的結構中
問題是,協議緩衝區消息對象是不可變的。我們想到的僅僅是使用協議緩衝區信息作爲原型創建一個新的構建器對象:
Foo.Builder.newBuilder(prototype)
這基本上可行。但是因爲我們有一個嵌套結構,所以原型對象實際上包含屬性,它們本身就是消息,這是行不通的。摘自the documentation:
由於嵌入式消息和字符串對象是不可變的,它們在原始文件和副本之間共享。
有沒有辦法將整個結構克隆到可變的新建設者對象?