是否有一种方法来获得所有可能的protobuf枚举值使用scalapb?



我有一个protobuf enum

enum MyEnum {
A = 0;
B = 1; 
C = 2;
}

在运行时,我想循环遍历枚举的所有可能值,像这样:

MyEnum().uniqueValues.forEach(println)

我如何使用scala或仅在scala中做到这一点?

如果您使用默认设置的scalapb,那么下面的protobuf枚举类型

enum MyEnum {
A = 0;
B = 1; 
C = 2;
}

将被转换为带有伴随对象

的抽象类。
sealed abstract class MyEnum(val value: _root_.scala.Int) extends _root_.scalapb.GeneratedEnum 
???
object MyEnum extends _root_.scalapb.GeneratedEnumCompanion[MyEnum]

配套对象MyEnum将提供您需要的方法values

lazy val values = scala.collection.immutable.Seq(A, B, C)

可以通过MyEnum.valuesMyEnum.A.companion.values访问

最新更新