我有一个 protobuf 文件,我在其中定义了多个消息,这些消息都继承了相同的特征(使用option (scalapb.message).extends = "Event";
消息定义内部)。
我想创建一个名为 MultiEvent 的新消息,其中可能包含从 Event 继承的任何消息的序列。
trait Event
事件在 scala 代码中被定义为简单。
这个想法是能够一次发送包含多个消息的特殊消息。
syntax = "proto3";
import "scalapb/scalapb.proto";
package com.some.package;
message A {
option (scalapb.message).extends = "Event";
string name = 1;
}
message B {
option (scalapb.message).extends = "Event";
string field = 1;
}
message C {
option (scalapb.message).extends = "Event";
string otherField = 1;
}
message MultiEvent {
option (scalapb.message).extends = "Event";
repeated Event seq = 1; // this line is problematic
}
我得到了错误:"Event" is not defined.
。理想情况下,从代码中该字段将是一个简单的 Seq,它重复提供,但它仅适用于标量类型。我在互联网上发现 Any 可能能够完成我想要的,但是在尝试使用它时会出错。
解决此类问题的通常方法是什么?枚举?转换?
谢谢。