【发布时间】:2018-10-03 23:35:15
【问题描述】:
首先,是的,我已经阅读了这个帖子,Protobuf - Missing toByteArray()?,它并没有解决我的问题。
我按照此处描述的确切步骤安装了 protobuf:https://gist.github.com/sofyanhadia/37787e5ed098c97919b8c593f0ec44d8。
我的 proto 文件很简单:
syntax = "proto3";
package com.mypackage.protobuf;
message MensajeSMS {
string telefono = 1;
string mensaje = 2;
}
我去我的原型路线并使用以下方法对其进行原型编译:
protoc --java_out=/home/myhome/myproject/myprotoclass/ MensajeSMS.proto
类确实创建了,它有几个方法,但这里没有全部指定:https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/MessageLite
就像有些人说的那样:
“toByteArray() 方法肯定存在,因为它在 Message 接口中为所有消息类型定义: https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/MessageLite.html"
这里说: https://github.com/google/protobuf/issues/2643
所以,我显然做错了什么。如何使 protoc 使用 toByteArray 方法生成我的类?
编辑
代码如下:
MensajeSMS xxx = MensajeSMS.newBuilder()
.setTelefono(mensajeSMS.getTelefono())
.setMensaje(mensajeSMS.getMensaje())
.build();
byte[] mybyte = xxx.toByteArray(); //Here I get cannot resolve method
【问题讨论】:
-
能否在您使用 proto 的地方添加代码以及收到的错误消息?
-
已编辑以添加出现错误的代码。 @Luc
标签: protocol-buffers