【发布时间】:2019-12-21 02:23:33
【问题描述】:
我有一个 protobuf 文件,我在其中定义了多个消息,这些消息都继承了相同的特征(在消息定义中使用 option (scalapb.message).extends = "Event";)。
我想创建一个名为 MultiEvent 的新消息,其中可能包含从 Event 继承的任何消息的序列。
事件在 Scala 代码中被定义为简单的trait Event。
这个想法是能够一次发送包含多条消息的特殊消息。
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 可能能够完成我想要的,但是在尝试使用它时出现错误。
解决此类问题的常用方法是什么?枚举?转化?
谢谢。
【问题讨论】:
-
我也有类似的问题。
标签: scala protocol-buffers scalapb