【发布时间】:2021-08-25 14:04:23
【问题描述】:
我是 Scala 的新手,如果出现愚蠢的问题,我深表歉意: 我有一些共同的状态,我不会拥有 enum(trait)
Trait A
Object A {
case object A1 extends A
case object A2 extends A
val vectA = Vector(A1,A2)
}
我有 2 个孩子需要额外的身份
Trait B extends A
Object B extends A{
case object B1 extends B
case object B2 extends B
val cVect = Vector(B1,B2) ++ A.vectA
def apply(status: String): C = {
cVect.find(_.toString == status).getOrElse("error")
}
}
Trait C extends A
Object C extends A{
case object C1 extends C
case object C2 extends C
val cVect = Vector(C1,C2) ++ A.vectA
def apply(status: String): C = {
cVect.find(_.toString == status).getOrElse("error")
}
}
基本上,我有 apply 方法,它将接受字符串并返回 B 或 C 类型的特征
期待
val x = B.apply("A1") to return B type enum.
我可能做错了什么,所以请给我正确的方法来处理这种情况
【问题讨论】:
-
请。这正是我想要的。