のえら

技術備忘とかメモとか.間違いはつっこんでいただきたい所存.

scalaでFileFilterを使う

とあるディレクトリからlistFilesでFileを取得するが、ファイルだけ取得したいと思い、調べてみたらFileFilterというものがあったので使ってみる。
取得した後、fileを基にHogeオブジェクトを作ってmapにする、ということもしたい。
※エラー処理とかここでは省く

import java.io.FileFilter
var dir = new File("./target");
def all = dir.listFiles(new FileFilter() {
  override def accept(file: File) = {
    file.isFile
  } 
}).map(Hoge(_))


ここまで書いてから、scalaってfilterっていうのあったよなー、と思い、書き換えてみたらこれでもできた。

var dir = new File("./target");
def all = dir.listFiles().withFilter(_.isFile).map(Hoge(_))


どっちのほうがよいのかいまいちわからなかったので、短いという理由から後者採用。