如何将java列表转换为scala列表

时间:2016-08-26 07:07:51

标签: java scala

我有一个java列表

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

现在我的scala案例类是,

object ScalaMainObject {

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

  }
}

我想从java代码将此java列表转换为scala.collection.mutable.ListBuffer [Attribute12],之后将调用scala方法。

但我无法将java列表转换为scala listbuffer。请指教!!

1 个答案:

答案 0 :(得分:3)

您可以使用import collection.JavaConverters._

将java集合转换为scala集合,反之亦然

这提供了进行转换的隐式函数。

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)