如何讓Java協議緩衝區類型變爲可變?如何讓Java協議緩衝區類型變爲可變? Protoc.exe不會生成setter?
Protoc.exe不會生成setter?
基本上我需要創建一個對象然後改變一個字段值。
感謝
如何讓Java協議緩衝區類型變爲可變?如何讓Java協議緩衝區類型變爲可變? Protoc.exe不會生成setter?
Protoc.exe不會生成setter?
基本上我需要創建一個對象然後改變一個字段值。
感謝
那不是的預期用途圖書館;您可以在構建器階段設置值,然後從構建器創建不可變的DTO。如果您需要不同的值:更改構建器中的值並重新生成DTO。
或者,請注意,有多個庫提供對protobuf線規範的支持。 IIRC「protostuff」適用於可變POJO對象。
我的理解是,你不能用標準protoc工具和標準的生成插件做到這一點。
AFAIK,你唯一的選擇是編寫你自己的發電機(或修改現有的發電機)來做你所需要的。
或者,您可以使用「討厭」反射技巧來達到對象並修改狀態。
(爲什麼你覺得你需要創建對象後更改字段值?你就不能更改生成器中的字段值並再次調用build
?)
你可以簡單地在任何你想讓對象變爲可變的地方使用構建器。他們既有獲得者又有獲得者。
我從來沒有想到,即使在使用Java protobufs和C++ protobufs幾年後,抱怨他們之間的哲學差異。 – 2014-06-06 22:43:24