Google Collections Libraryを使おうと思ってGoogle Codeにアクセスしたら、開発が継続されていないことに気づきました。どうやらGuavaというプロダクトにマージされたようです。
This project has evolved into Guava!
http://code.google.com/p/google-collections/
Guavaは1年前に0.5としてリリースされたものが初めらしいですが、今日までその存在を知りませんでした。今検索しても日本語の情報は@ITの記事しかヒットしないようで、まだメジャーではないようです。個人的には1年経ってもバージョンが0.1しか変化していない点に不安を覚えていますが、ActivityがHighなので個人利用には問題ないでしょう。
なお、機能の概要は公式PDFに載っています。また2つほどクラスを試してみましたので、感想をちょっと残しておきます。
com.google.common.base.Preconditions
PreconditionsはCollections Libraryにも存在していたもので、公開メソッドの前提条件を確認するために使用します。もし今までNullPointerException, IllegalArgumentException, IllegalStateException, そしてIndexOutOfBoundsExceptionを明示的に投げている箇所があれば、Preconditionsクラスの利用でコードを短くできるでしょう。
利用例は公式PDFの他、gihyo.jpにも掲載されています。
com.google.common.base.Splitter
これはCollections Libraryには含まれていなかったもので、Joinerの逆の働きをします。String#split(String)は配列を返しますが、Splitterが返すのはIterable
Splitter commaSplitter = Splitter.on(",").trimResults(CharMatcher.JAVA_WHITESPACE); for (String s : commaSplitter.split("a, b,c ,\td, e ")) { System.out.printf("\"%s\",", s); // "a","b","c","d","e" }
正規表現が使えたりtrimできたりnullをスキップするomitEmptyStrings()が用意されていたりと便利ではありますが、正規表現のグループが使えないなど細かいところに手が届かない印象です。現時点での用途は限られるのではないでしょうか。