2012-03-02 8 views
0

で匿名クラスと静的内部インターフェイスを実装し、私はScalaの(クラスがjava.nio.fileである)でNIO.2の機能を使用したいはScalaの

​​

Scalaで同じことをするにはどうしたらいいですか? Fitlerは、DirectoryStreamインターフェイス内のスタティックインターフェイスです。

ありがとうございます。

編集:ファイルをリストする別のライブラリ/方法を教えてください。私は主に主な問題に興味があります。

答えて

5

ないあなたはScalaでは、このコードの文字通りの変換を求めているかどうか100%を確認してください。

Files.newDirectoryStream(Paths.get("/tmp"), new DirectoryStream.Filter[Path] { 
    def accept(entry: Path) = false 
}) 

..or他の何か?あなたは、暗黙の型変換を追加することができます。

class PathPredicateFilter(p: Path => Boolean) 
    extends DirectoryStream.Filter[Path] { 
    def accept(entry: Path) = p(entry) 
} 
implicit def PathPredicate_Is_DirectoryStreamFilter(p: Path => Boolean) 
    = new PathPredicateFilter(p) 

今、あなたがこれを行うことができます:

Files.newDirectoryStream(Paths.get("/tmp"), (p: Path) => false /* your code here */) 
+0

Damnitを。はい、私はリテラル変換が必要でした。私はすべての可能な構文の組み合わせを試して、非常に頑張りました。どうもありがとうございました。 – woky