我有一个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.values
或MyEnum.A.companion.values
访问