我有以下案例对象
sealed trait Type
case object Foo extends Type
case object Bar extends Type
我有一个包含字符串的列表
Foo, Bar
是否可以将它们转换为上面定义的案例对象列表?
答案 0 :(得分:0)
您可以声明一个将字符串转换为给定类型的函数
sealed trait Type
case object Foo extends Type
case object Bar extends Type
val inputList = List("Foo","Bar","Foo","Bar")
def convertToCaseObject(input: String) ={
input match{
case "Foo" => Foo
case "Bar" => Bar
}
}
val output = inputList.map(x => convertToCaseObject(x))
在这里,函数convertToCaseObject接受输入String,对它们进行模式匹配,并给出相应的类型作为输出。所以最后您最终得到了所需的输出。 如果您需要任何其他信息,请与我们联系。谢谢
答案 1 :(得分:0)
让我们说
sealed trait Type
case object Foo extends Type
case object Bar extends Type
val inputList = List("Foo","Bar","Foo","Bar","Other","SomeJunk")
inputList.map(x=>if(x=="Foo")Foo else if(x=="Bar") Bar else x )
scala> inputList.map(x=>if(x=="Foo")Foo else if(x=="Bar") Bar else x )
res33: List[java.io.Serializable] = List(Foo, Bar, Foo, Bar, Other, SomeJunk)