2016-08-26 3 views
1

ich eine Java-Liste meiner scala Fall Klasse,wie eine Java-Liste in eine scala Liste

object ScalaMainObject { 

    case class Datapod12(baseEntityVal:BaseEntity12,attr: scala.collection.mutable.ListBuffer[Attribute12]){ 

    } 
} 

Ich möchte konvertieren diese Java-Liste scala.collection konvertieren

scala.collection.mutable.ListBuffer<ScalaMainObject.Attribute12> scalaAtr; 
ScalaMainObject.Attribute12 atr; 
ScalaMainObject.BaseEntity12 be1; 
for(int i= 0; i<datapodDet.getAttributes().size();i++){ 
      datapodDet.getAttributes().get(i).getAttributeId(); 
      datapodDet.getAttributes().get(i).getType(); 
      datapodDet.getAttributes().get(i).getName(); 
      datapodDet.getAttributes().get(i).getDesc(); 
      be1 = new ScalaMainObject.BaseEntity12(datapodDet.getAttributes().get(i).getAttributeId().toString(),datapodDet.getVersion(),datapodDet.getAttributes().get(i).getName() 
        ,datapodDet.getAttributes().get(i).getDesc(),datapodDet.getActive()); 
      atr = new ScalaMainObject.Attribute12(datapodDet.getAttributes().get(i).getType(), be1); 
      scalaAtr.add(atr); 
} 

Jetzt .mutable.ListBuffer [Attribute12] aus Java-Code und danach wird eine Scala-Methode aufgerufen.

Aber ich bin nicht in der Lage Java-Liste scala listbuffer zu konvertieren. Bitte um Rat !!

Antwort

3

Sie können Java-Sammlungen zu scala Sammlungen oder umgekehrt mit der Verwendung von import collection.JavaConverters._

Dies bietet implizite Funktionen konvertieren Konvertierungen zu tun.

scala> val jlist = new java.util.LinkedList[Int]() 
jlist: java.util.LinkedList[Int] = [] 

scala> jlist.add(1) 
res7: Boolean = true 

scala> jlist.add(2) 
res8: Boolean = true 

scala> import collection.JavaConverters._ 
import collection.JavaConverters._ 

scala> jlist.asScala 
res9: scala.collection.mutable.Buffer[Int] = Buffer(1, 2) 
+0

Nein Ich bin nicht in der Lage, JavaList in Scala-Liste zu konvertieren. Ich habe versucht zu tun, (in Java-Klasse) \t \t ScalaMainObject.Datapod12 datapodDet1 = new ScalaMainObject.Datapod12 (sein, scala.collection.JavaConversions.asScalaBuffer (scalaAtr)); Aber es gibt Fehler – treena

+0

Um besser zu verstehen; check this http://stackoverflow.com/questions/8301947/what-is-the-difference-between-javaconverters-and-javaconversions-in-scala –

Verwandte Themen