gpt4 book ai didi

java - 如何导入内部protobuf消息?

转载 作者:行者123 更新时间:2023-11-30 02:18:44 26 4
gpt4 key购买 nike

我读到,在 proto3 中,他们删除了了解字段是否已设置的功能。作为一种解决方案,我在几个网站上读到过,您可以将原语嵌入到包装消息中。

如您所见here ,protobuf在wrappers.proto下有一些内部包为了准确地完成我需要的事情。

我可以将该wrappers.proto 文件复制并粘贴到我的系统中,然后从另一个文件A.proto 导入它以使用它们。

但是我想知道:

  1. 使用其内部包装器是一个不错的选择吗?

  2. 如果是这样,我可以直接从他们的 jar 导入而不是创建我自己的文件副本吗?

(我尝试使用他们的 jar 目录导入,但没有成功)

import "lib/protobuf-java-3.5.0.jar/com/protobuf/wrappers.proto"; --> fails

同时:

import "resources/protoBeans/wrappers.proto"; --> my own copy --> works

最佳答案

你可以,而且最好单独创建它们 - 尽管请注意,子消息会增加二进制大小和处理的一些开销,并且与使用 可选的 proto2 消息不兼容 字段来实现同样的事情。 “wrappers.proto”应该已经在 protoc 的二进制位置下可用;典型的用法可能是:

syntax = "proto3";
import "google/protobuf/wrappers.proto";

message Foo {
.google.protobuf.Int32Value foo = 1;
}

使用“wrappers.proto”而不是自己重新实现它的另一个优点是,它将被视为具有定制 JSON 处理和更好的“任何”支持的“众所周知的类型”。

关于java - 如何导入内部protobuf消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47510148/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com