如何存储匹配.proto的数据结构
我有一个非常简单的android应用程序,它使用protobuf从服务器获取数据,然后让用户浏览数据树(简化)
现在我只需要在我的结构中使用这些数据,所以我使用protobuf回复(通过自动生成类)作为我的内部数据集。
问题是我希望能够更新其中的一些数据,并从服务器获取更多数据并附加到树上...这是不可能的,因为数据是不可变的。
所以我的问题是,如何用尽可能少的计算能力将我的 protobuf 消息存储为可更改的数据结构?
我是否必须制作自己相应的数据类结构(似乎是双重工作)还是有其他方法?
I have a android app that is quite simple it fetches data from the server using protobuf and then it lets the user browse the data tree (simplified)
Now I only ever want this data in my structure so I was using the protobuf reply (through autogenerated class) as my internal dataset.
problem is I want to be able to update some data in it and also get more data from the server and attach to the tree... this is impossible due to the data being immutable.
so my question is, how do I with as little computing power as possible store my protobuf messages as a changable data structures?
do i have to make my own corresponding dataclass-structure (seems like double work) or is there any other way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我使用的方法是实现我自己的类型,它镜像 protobuf 类型,但允许额外的功能,例如就地修改,并且还实现一组转换函数以在每对类型之间进行转换。然后,我仅在实际需要通过网络发送或接收某些内容时才使用 Protobuf 生成的类。
The approach i've used is to implement my own types which mirror the protobuf types but which allow extra functionality such as in-place modification, and also implement a set of translation functions to convert between each pair of types. I then only use the Protobuf generated classes when i actually need to send or receive something over the wire.
您的 protobuf 消息是可变的数据结构。您可以通过 Builder 界面修改它们,并且可以使用 Android 本地文件存储或 SQLite BLOB 来存储它们。
请参阅以下示例:
Your protobuf messages ARE changeable data structures. You modify them via the
Builder
interface and you can store them using Android local file storage or SQLite BLOB.Refer to these examples: