我可以使用不同数据类型的scala列表吗?我试图创建一个硬编码不同值的projList但我得到了不匹配错误。我不知道如何将Any转换为Long,Timestamp和Boolean。有任何想法吗?请指教。谢谢!
val cTime: Timestamp = new Timestamp(System.currentTimeMillis())
val projList = List("test", 102, cTime, true)
Project(projList(0), projList(1), projList(2), projList(3))
type mismatch;
[error] found : Any
[error] required: Long
[error] Project(1, projList(0).toString, projList(1), projList(2), projList(3))
答案 0 :(得分:0)
您创建的列表是List[Any]
。您可以使用包含4种类型的Tuple4
:
val projParams = ("test", 102, cTime, true)
Project(projParams._1, projParams._2, projParams._3, projParams._4)
为什么要这么麻烦?
Project("test", 102, cTime, true)
答案 1 :(得分:0)
我不知道你为什么使用List [Any],看起来像一个完整的反模式,但如果你真的需要,那么你可以像这样抛出变量:
Project(projList(0).asInstanceOf[String],
projList(1).asInstanceOf[Long],
projList(2).asInstanceOf[Timestamp],
projList(3).asInstanceOf[Boolean])
请注意,120是一个整数,并且无法解析为Long,您应该使用120L