1

値を持つオブジェクト testCat があり、このオブジェクトをscalaList(123, 456, 789)に変換したいと考えています。List[Object]を使用する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]]

型パラメータであるため、括弧で囲みます。

なぜ Object から List of Objects への変換が必要なのか、まだ疑問に思っています。生臭い!

于 2015-10-12T06:27:11.337 に答える
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 に答える
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 に答える