我在我的项目中使用 proto 3 (java)。我有一些嵌入了较小消息的巨大 protobuf。有没有一种方法可以对我想查看的少数嵌套子消息进行部分解码。我目前遇到的问题是我需要将这个基于原型的巨大记录数据与另一条记录连接起来,但我的连接是基于非常小的子消息,所以我不想解码整个巨大的 protobuf 并且只能解码要加入的嵌套消息(字符串 id),然后只为加入的数据解码整个 protobuf。
我尝试使用[lazy=true]
标记方法,但在生成的代码中看不到任何差异,我还尝试在有和没有惰性键工作的情况下对反序列化时间进行基准测试,但它似乎根本没有影响。此功能默认情况下是否适用于所有字段?或者这甚至可能吗?我确实看到 protobuf-github 中的 LazyFields.java 类和测试用例很少,所以我假设这个功能已经实现。