【发布时间】:2017-02-17 22:31:37
【问题描述】:
我尝试将 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 类型
【问题讨论】:
-
最初的用例是什么?我可以扔给你shapeless,但我不确定这是否是正确的解决方案。
-
我尝试转换数据以便使用 slick 将其导入数据库
-
你正试图在这里做一堆隐式转换。您的错误是,由于第一个元素是 Any,因此您不能将其强制为 Int,根据您的返回类型,返回的元组中的第一个元素必须是 Int。您可以将 conversions from Any 写入您需要的每种类型并将它们放在范围内,尽管这似乎过分了。看来您可能正在解析输入行。如果这是真的,那么您可以使用现有的marshallers
标签: scala