我有一个方法(scala 2.12),看起来像下面这样。
目标是从objectMapper(Jackson)向方法readValue传递一个字符串和一个需要转换该字符串的类,在本例中是一个Array[T]。
T可以是两个不同的case类,所以这就是为什么我试图参数化它的原因。
private def fromSeqToCastedSeq[T](files: Seq[File]): Seq[T] = {
files flatMap (file => {
val maps = objectMapper.readValue(file, classOf[Map[String, Any]])
val combinedString = objectMapper.writeValueAsString(maps.get("sqlDefinitions"))
val o = objectMapper.readValue(combinedString, classOf[Array[T]])
o})
目前它不能用scala.MatchError编译,因为它不能在运行时强制转换。
有人能帮我理解我正在努力实现的目标是否可能吗?
- 谢谢-谢谢
1条答案
按热度按时间yebdmbv41#
正如在Discord中所回答的,您应该能够做到这一点:
现在,不知道这是否会在运行时崩溃,很可能是因为这段代码非常不安全和不符合规范。