Java中protobuf的自定义打印机

Java中protobuf的自定义打印机,java,protocol-buffers,protobuf-java,Java,Protocol Buffers,Protobuf Java,Im使用protobuf 2.6.1,我有一个例子,其中有一些复杂类型,例如UUID表示为两个fixed64字段,时间戳表示为longs等,需要以更易于阅读的方式打印 我正在寻找对所有protobuf的toString进行一般性扩展,以将复杂类型转换为人类可读的类型 有这样的方法吗?如果2.6.1没有,那么>=3.0中是否有任何选项?3允许您输出json,您可以重新解析和自定义json,但我不知道toString自定义。这不是一件很好展示的东西。您还可以将自己的实用工具String放到Strin

Im使用protobuf 2.6.1,我有一个例子,其中有一些复杂类型,例如UUID表示为两个fixed64字段,时间戳表示为longs等,需要以更易于阅读的方式打印

我正在寻找对所有protobuf的toString进行一般性扩展,以将复杂类型转换为人类可读的类型


有这样的方法吗?如果2.6.1没有,那么>=3.0中是否有任何选项?

3允许您输出json,您可以重新解析和自定义json,但我不知道toString自定义。这不是一件很好展示的东西。您还可以将自己的实用工具
String放到String(消息输入)
方法中,其中包含一些代码,如
if(SpecialMessage的输入实例)return dot.thefancydisplay(input)else return input.toString()
要自定义所需的位置,您必须编写自己的方法将proto转换为字符串。如果您可以直接更改protos的行为,它将破坏依赖于默认格式的其他代码。如果您只是寻找较短的输出,则可以使用
TextFormat.shortDebugString(msg)
而不是
msg.toString()