【问题标题】:Protobuf - Missing toByteArray()?Protobuf - 缺少 toByteArray()?
【发布时间】:2014-08-11 01:18:05
【问题描述】:

我可能只是在我的 proto 文件中弄乱了一些东西,但我似乎无法调用 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();

BaseMessage 被声明为...

public static final class BaseMessage   
       extends com.google.protobuf.GeneratedMessage   
       implements BaseMessageOrBuilder {

也许我错过了什么......

BaseMessage 正在扩展 GeneratedMessage,它从 AbstractMessageLite 继承 toByteArray(),其中 toByteArray 是公共的...所以我应该可以使用它吗?

【问题讨论】:

  • 它在超类中吗?
  • public static final class BaseMessage extends com.google.protobuf.GeneratedMessage implements BaseMessageOrBuilder { 我的意思是 GeneratedMessage 有 toByteArray 所以......这不应该工作吗?还是我错过了一些简单的东西?
  • 如果GeneratedMessagetoByteArray,那么BaseMessage 也有toByteArray。当然,如果是private或者protected你就不能用了。

标签: java protocol-buffers


【解决方案1】:

是的,你可能是说:

baseMessage.build().toByteArray()

【讨论】:

  • 这似乎有效。我想我必须错过一些像这样简单的东西。
猜你喜欢
  • 2018-10-03
  • 2021-06-25
  • 1970-01-01
  • 1970-01-01
  • 2021-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多