2010年04月18日 23:34

Scalaのメモ その5 JavaのListをScalaのListに変換

Scalaのメモその4の続き。

Javaの任意のクラスを利用できるので、リストは、ScalaのListArrayでなくても java.util.List も利用できる。ただ、ScalaのListArrayのほうが便利なので、java.util.List はやむを得ない場合のみの方がよさそう。

リストをforループに回すときは、mapメソッドやforeachメソッドを備えている必要があり、java.util.List はそのままではforループでは回せない。なので、java.util.List からScalaの scala.collection.jcl.BufferWrapper という型に変換してくれる scala.collection.jcl.Conversions.convertList メソッドを利用する。

scala.collection.jcl.BufferWrapperscala.Iterable というtraitを継承していて、それがmapメソッドやforeachメソッドを実装している。traitってのはJavaにない概念でまだあまり理解できていない。

scala.collection.jcl.Conversions.convertListimport文に書いておけば、暗黙の型変換というのが適用されて、特に何も考えなくても、forループで使えるようになる。暗黙の型変換ってのもJavaにない概念だ。型がマッチするように勝手にメソッド呼び出しを追加してくれるものらしい。

以下の2つの例は同じ意味になる。
import scala.collection.jcl.Conversions.convertList;

val list = new java.util.ArrayList[String]();
list.add("abc");
list.add("def");
for(word <- list){
	println(word);
}
val list = new java.util.ArrayList[String]();
list.add("abc");
list.add("def");
for(word <- scala.collection.jcl.Conversions.convertList(list)){
	println(word);
}
タグ:scala
カテゴリ:テック
2010/04/18 Sun 23:34 | Comment(0) | TrackBack(0) | テック | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。