我尝试使用代码进行编码和解码。
然而,从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)
答案 0 :(得分:1)
您是否自己构建协议缓冲区?或者Comment
本身可能没有正确编译?
这看起来像是在编译出错时由Eclipse构建的代码引发的异常,但无论如何它都构建了类文件。它允许你运行损坏的代码,直到你到达实际的损坏位,此时你会得到这样的异常。