我尝试了以下代码进行编码和解码。
但是从 byte[] 解码失败。
代码:-
public static void test(){
Comment comment = Comment.newBuilder()
.setCommentBody("This is 1st comment")
.build();
byte[] bytes = comment.toByteArray();
try {
Comment c = Comment.parseFrom(bytes);
}
catch (InvalidProtocolBufferException ex) {
Logger.getLogger(testing.class.getName()).log(Level.SEVERE, null, ex);
}
异常详细信息:-
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code
at com.google.protobuf.AbstractMessage$Builder.mergeFrom(AbstractMessage.java)
at com.google.protobuf.AbstractMessageLite$Builder.mergeFrom(AbstractMessageLite.java:153)
at com.google.protobuf.AbstractMessage$Builder.mergeFrom(AbstractMessage.java:709)
at paratha.serializers.protocolbuffers.CommentProto$Comment.parseFrom(CommentProto.java:186)
最佳答案
您是否自己构建了 Protocol Buffer?或者也许 Comment
本身没有正确编译?
这看起来像是 Eclipse 构建的代码在编译出现错误时抛出的异常,但无论如何它都会构建类文件。它可以让您运行损坏的代码,直到到达实际损坏的位,此时您会得到这样的异常。
关于java - 将 byte[] 解析回 Protocol Buffer 消息实例时出现 RuntimeException! (反序列化),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5196019/