Listの罠

今日、Listを使ってみましょう!って話をしてたらこんなコードを書いていた人がいたんですよ。

List list = new List();

ええっ?!JDK5.0からインターフェースからクラスに変わったのか!?と思ったら

import java.awt.List;

ってorz。EclipseでCtrl + Shift + Oを教えたもんですから勝手にインポートしちゃうんですよね。java.util.Listとどっちをインポートするか選択肢が出たはずなのに、awtのListをインポートしちゃって、最初Listをインスタンス化してるのを見た瞬間はびっくりしちゃいましたよ(笑)ちなみに、SecureRandomクラスも同じく。違うパッケージに同じクラスがあるので、それをインポートし間違えていてnextIntメソッドとか使えないで苦労している人がいました。

適切なパッケージに属する、適切なクラスを使用する。経験と勘ですかね?というよりJavaDoc確認すれば、なんとなく分かると思うんですけどね。