我有一个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。请指教!!
答案 0 :(得分:3)
您可以使用import collection.JavaConverters._
这提供了进行转换的隐式函数。
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)