Protobufs - '应该被子类覆盖'例外

时间:2014-04-25 07:01:01

标签: java protocol-buffers

我遇到了Google Protocol Buffers的问题。使用protoc编译的java类在转换为字节数组时抛出异常。

以下是示例代码:

byte[] raw = pbCard.toByteArray(); 
// PbCard.Card is an instance of a protoc-generated class.

这会导致异常:

Exception in thread "main" java.lang.UnsupportedOperationException: This is supposed to be overridden by subclasses.

这种行为被许多人诊断为protoc版本的问题。当使用使用protoc生成的java类时2.5.0并包含一个java库2.5.0,将生成此异常。

链接:

http://code.google.com/p/protobuf/issues/detail?id=493

error with serialization with protobuf

http://comments.gmane.org/gmane.comp.lib.protocol-buffers.general/9588

Protobuf 2.5.0 bug?

但是,在我的情况下两者 protoc和java库都在版本2.5.0

eipifi@vaio:~$ protoc --version
libprotoc 2.5.0

包含的jar:

eipifi@vaio:~$ sha1sum protobuf-java-2.5.0.jar 
a10732c76bfacdbd633a7eb0f7968b1059a65dfa  protobuf-java-2.5.0.jar

我的机器上没有旧版本的protobufs。所有java类都是在这台机器上生成的,并没有从旧项目中移除。

我错过了什么?

感谢您的时间。

0 个答案:

没有答案