golang 原型库有一个用于此目的的辅助实用程序:// MessageType returns the message type (pointer to struct) for a named message.// The type is not guaranteed to implement proto.Message if the name refers to a// map entry.func MessageType(name string) reflect.Type { // ....}要使用它,您可以使用类似于此的方法:func getProto(messageType string, messageBytes []byte) proto.Message { pbtype := proto.MessageType(messageType) msg := reflect.New(pbtype.Elem()).Interface().(proto.Message) proto.Unmarshal(messageBytes, msg) return msg}