ScalaとJavaの相互運用
1013 ワード
1.ScalaにおけるArrayBufferとJavaにおけるArrayListの変換
たとえばjava.lang.ProcessBuilderクラスにリストをパラメータとするコンストラクタがあり、scalaでの呼び出し方法は次のとおりです.
ProcessBuilderの構築にはjava.util.Listオブジェクトが必要です.暗黙変換をインポートすることで、ArrayBufferオブジェクトはjava.util.Listオブジェクトに自動的に変換され、pb.command()はjava.util.Listオブジェクトを返し、暗黙変換によりBufferオブジェクトに自動的に変換されます.
2.ScalaにおけるIntとJavaにおけるIntegerの変換
scalaのListをJava Listに変換する必要がある場合
たとえばjava.lang.ProcessBuilderクラスにリストをパラメータとするコンストラクタがあり、scalaでの呼び出し方法は次のとおりです.
import scala.collection.JavaConversions.bufferAsJavaList
import scala.collection.mutable.ArrayBuffer
val command = ArrayBuffer("ls", "-al", "/home/cay")
val pb = new ProcessBuilder(command) //scala Java
import scala.collection.JavaConversions.asScalaBuffer
import scala.collection.mutable.Buffer
val cmd: Buffer[String] = pb.command()
ProcessBuilderの構築にはjava.util.Listオブジェクトが必要です.暗黙変換をインポートすることで、ArrayBufferオブジェクトはjava.util.Listオブジェクトに自動的に変換され、pb.command()はjava.util.Listオブジェクトを返し、暗黙変換によりBufferオブジェクトに自動的に変換されます.
2.ScalaにおけるIntとJavaにおけるIntegerの変換
val arrInt = Array(1, 2, 3)
val arrInteger = arrInt.map{(x:Int) : java.lang.Integer}
scalaのListをJava Listに変換する必要がある場合
import scala.collection.JavaConverters._
val listJava = arrInteger.toList.asJava