我尝试将List [Any]转换为使用某些数据类型的元组。
def matchValue(list: List[Any]):(Int, Int, Int, Option[String], String,Option[Date],String, Date,String, Option[Int],Option[String])= {
list match {
case i1::i2::i3::i4::i5::i6::i7::i8::i9::i10::i11 => (i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11)
}
}
但我有错误:
Any类型的表达式不符合预期类型Int
答案 0 :(得分:1)
你可以写
case (i1: Int) :: (i2: Int) :: // etc
如果您有许多具有不同目标元组的类似案例,您确实需要像无形的东西(可以处理相同的元组大小)。
: Option[String]
模式实际上只能检查参数是Option
。您将收到有关此内容的警告,使用Option[String @unchecked]
可以忽略此警告,但只有在您确定自己真正获得Option[String]
时才能进行此警告。
答案 1 :(得分:0)
您可以尝试使用x.asInstanceOf[T]
将每个值转换为其基本类型。例如,x.asIntanceOf[Int]
会将任何x
转换为Int
。