No Programming, No Life

プログラミング関連の話題や雑記

Groovyでファイルツリーを巡り、最初に見つかったファイルを返却するメソッド書いたよ

はじめに




あーなるほど…遅延評価か。

困ったときのJava7

Java7のNIO2できっとそういうのがあるはずだ!と思って調査してたらありました。
Walking the File Tree (The Java™ Tutorials >
Essential Classes > Basic I/O)

これを実装しようかなと思ってコードを書いてる最中に、FileVisitResultってクラスがありまして、こいつはパッケージがjava.nio.fileなんですが、IntelliJ君が、その名前のクラスならgroovy.ioにもあるよと教えてくれた。
え!?これはもしやと思い調べてみたらドンピシャなメソッドがGDKに見つかりました。
File#traverse(Map, Closure)
なんとSince v1.7.1からだそうで。見逃してた。

ひとまず書いてみた


元々実現しようとしていた遅延評価ってわけじゃないですが、見つかったらすぐTERMINATEできるから目的は達成できてるかな。やろうと思えば遅延リストを作成して返却すればいいわけだし。

おわりに

やっぱりGroovy便利だわ。Mapとクロージャで条件を指定できたり、処理を書けたりするんですもの。Groovyはv1.7.1の時点でJava7を凌駕していたわけですね。