Protobuf-缺少toByteArray()?

Myt*_*ral 4 java protocol-buffers

我可能只是弄乱了原始文件中的内容,但似乎无法调用toByteArray函数。

使用Java,proto文件是使用protoc编译的。

我在说...

BaseMessage.builder = baseMessage = BaseMessage.newBuilder();
Acknowledgement.builder = acknowledgeMessage = Acknowledgement.newBuilder();

acknowledgeMessage.setOk(true);

baseMessage.setAcknowledgement(acknowledgeMessage);
baseMessage.build();

byte[] send = baseMessage.toByteArray();
Run Code Online (Sandbox Code Playgroud)

并且BaseMessage被声明为...

public static final class BaseMessage   
       extends com.google.protobuf.GeneratedMessage   
       implements BaseMessageOrBuilder {
Run Code Online (Sandbox Code Playgroud)

也许我在想什么...

BaseMessage扩展了GeneratedMessage,它继承了从其中ToByteArray是公共的AbstractMessageLite继承toByteArray()的功能...所以我应该能够使用它?

shl*_*i33 5

是的,您可能是说:

baseMessage.build().toByteArray()
Run Code Online (Sandbox Code Playgroud)