1

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

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

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

4

3 回答 3

2
.asInstanceOf[List[Object]]

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

仍然想知道,为什么需要从对象到对象列表的转换。有腥味!

于 2015-10-12T06:27:11.337 回答
0

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

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)
}
于 2015-10-13T03:40:36.017 回答
0

尝试这个:

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)
于 2015-10-12T07:24:08.333 回答