【问题标题】:how to convert a java list to a scala List [duplicate]如何将java列表转换为scala列表[重复]
【发布时间】:2016-08-26 15:22:26
【问题描述】:

我有一个 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 列表缓冲区。请指教!!

【问题讨论】:

    标签: java scala


    【解决方案1】:

    您可以使用 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)
    

    【讨论】:

    • 不,我无法将 javaList 转换为 scala 列表。我试着做,(在java类中)ScalaMainObject.Datapod12 datapodDet1 = new ScalaMainObject.Datapod12(be,scala.collection.JavaConversions.asScalaBuffer(scalaAtr));但它给出了错误
    • 为了更好的理解;检查这个stackoverflow.com/questions/8301947/…
    猜你喜欢
    • 2015-06-23
    • 2017-11-15
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 2019-02-24
    相关资源
    最近更新 更多