2015-10-12 1 views
0

J'ai un objet testCat ayant la valeur List (123, 456, 789) et je voudrais convertir cet objet en liste [Object] dans scala. Quand j'utilise asInstanceOf, je suis l'erreur:Scala - comment convertir un objet en liste [Objet]

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

Quelqu'un peut-il me aider avec ce problème? Merci beaucoup.

+2

Votre syntaxe pour utiliser 'asInstanceOf 'est incorrect - ce n'est pas une fonction qui prend un type en paramètre, mais une fonction sans paramètre qui nécessite une spécification de type. Fondamentalement, remplacer les parenthèses "'() '" par des crochets: '.asInstanceOf [List [Object]]' – Shadowlands

+0

Cher Shadowlands, j'ai rencontré le même problème. L'objet vient de l'analyse de JSon, de toute façon j'ai déjà trouvé une autre façon d'analyser la liste. Merci beaucoup. –

Répondre

1
.asInstanceOf[List[Object]] 

avec carrés supports, car il est un paramètre de type.

Toujours en train de se demander pourquoi une conversion de l'objet à la liste d'objets est nécessaire. Ça sent le poisson!

0

Essayez ceci:

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)) 

SORTIE:

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

je trouve un moyen de résoudre mon problème, cela est tout le code de travail

   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) 
      }