JavaのライブラリをScalaで使っていると java.lang
の型が返ってくることがある。
たとえば、java.util.List
。
java.util.List
には foreach
メソッドがない。
Scalaのリストだったら便利なのに!
そんなときは、
import scala.collection.JavaConversions._
インポートするといい。
と思ったら、これは Scala 2.8 までの作法らしい。
ソースコードを見たら非推奨となっていた。
Scala 2.9 からは
import scala.collection.convert.WrapAsScala._
とする。
どうしてインポートするだけでScalaのListのように振る舞えるか疑問だったが、ソースコードを読んでみたら「暗黙の型変換(implicit conversion)」を行っていた。