Protocol buffers 如何在.proto文件[Protobuf]中映射java.lang.Object

Protocol buffers 如何在.proto文件[Protobuf]中映射java.lang.Object,protocol-buffers,Protocol Buffers,如何在.proto文件中映射java.lang.Object。我想要smth,比如: message User { string name = 1; Object field = 2; } 暂时不考虑您的需求的奇怪之处:将Java对象序列化为byte[]正式实现,或者以您想要的任何方式并使用protobuf值类型 但这确实不是使用protobuf的方式。它的目的是传输数据,而不是对象。您希望通过导线传输的对象是什么?无论如何都不能序列化方法和非平凡对象依赖项。仅值类型和简单结构数组、映射。

如何在.proto文件中映射java.lang.Object。我想要smth,比如:

message User {
 string name = 1;
 Object field = 2;
}

暂时不考虑您的需求的奇怪之处:将Java对象序列化为byte[]正式实现,或者以您想要的任何方式并使用protobuf值类型


但这确实不是使用protobuf的方式。它的目的是传输数据,而不是对象。您希望通过导线传输的对象是什么?无论如何都不能序列化方法和非平凡对象依赖项。仅值类型和简单结构数组、映射。因此,声明一个反映对象数据结构的proto消息,并序列化为该消息,而不是字节[]。

我认为这不是一个好主意,因为我想发送对象类型,这意味着它可以是字符串、长、双精度、客户机等,我想在客户机端正确处理它。现在我看的是google.protobuf.Any类型:Any包含一个任意的序列化消息作为字节。因此,您将不得不实现打包和解包,而不是实现Serializable。没有区别。protobuf中没有魔法可以为您发送任意对象。好吧,但它让我处理消息,例如,如果我有一个映射,任何可以是字符串和自定义对象,我应该为它创建至少两个处理程序。