【问题标题】:Scala - how to convert Object to List[Object]Scala - 如何将对象转换为列表 [对象]
【发布时间】:2015-10-12 04:23:35
【问题描述】:

我有一个值为 List(123, 456, 789) 的对象 testCat,我想在 scala 中将此对象转换为 List[Object]。当我使用asInstanceOf 时,我得到了错误:

DataSource.scala:310: T0 does not take parameters
[ERROR] [Console] [error]
var testCat = eachMultiCat.asInstanceOf(List[Object])
[ERROR] [Console] [error]

有人可以帮我解决这个问题吗? 非常感谢。

【问题讨论】:

  • 您使用 asInstanceOf 的语法不正确 - 它不是将类型作为参数的函数,而是需要类型规范的无参数函数。基本上,用方括号替换括号“()”:.asInstanceOf[List[Object]]
  • 亲爱的 Shadowlands,我遇到了同样的问题。该对象来自解析JSon,无论如何我已经找到了另一种解析列表的方法。非常感谢。

标签: json scala predictionio


【解决方案1】:
.asInstanceOf[List[Object]]

带有方括号,因为它是一个类型参数。

仍然想知道,为什么需要从对象到对象列表的转换。闻起来很腥!

【讨论】:

    【解决方案2】:

    试试这个:

    val obj1: Object = List(123, 456, 789)
    println(obj1)
    
    val obj2 = obj1.asInstanceOf[List[Object]]
    println(obj2)
    
    val obj3 = obj1.asInstanceOf[List[Int]]
    println(obj3)
    
    // cant do: obj1.map(_*2)
    // can't do: obj2.map(_*2)
    
    // this works
    println(obj3.map(_*2))
    

    输出:

    List(123, 456, 789)
    List(123, 456, 789)
    List(123, 456, 789)
    List(246, 912, 1578)
    

    【讨论】:

      【解决方案3】:

      我找到了解决问题的方法,这是所有工作代码

      val multiCategoryOne =
          for { JString(x) <- (content \\ ancesstorCategories").children} yield x
      
      var multiCategoryMany:List[Object] = Nil
      if (multiCategoryOne == Nil) {
          // multiple items in cart
          val elements = (content \\ "ancesstorCategories").children
          for ( acct <- elements ) {
              val eachMultiCat = for { JString(x) <- acct} yield x
              multiCategoryMany = multiCategoryMany ::: List(eachMultiCat)
          }
      
      } else {
          // one item in cart
          multiCategoryMany = multiCategoryMany ::: List(multiCategoryOne)
      }
      

      【讨论】:

        猜你喜欢
        • 2013-03-08
        • 1970-01-01
        • 2022-11-17
        • 2021-10-01
        • 2020-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多