ローカル変数の型
- ref:http://cappuccino.jp/keisuken/logbook/20080304.html#p01
- ref:http://d.hatena.ne.jp/lethevert/20080305/p2
- ref:http://cappuccino.jp/keisuken/logbook/20080307.html#p03
メソッドの引数は戻り値はともかく、ローカル変数はわざわざ抽象的な型で宣言しなくてもいいんじゃね、という話。ローカル変数の場合は影響範囲が限られているし、たしかに問題ないかも。
でも、コレクションに限って言えば、List, Set, Map で宣言しておいてもあまり問題はないかなぁ。追加されるメソッドも多くはないし。いや、もちろん ArrayList, HashMap と宣言しても問題は思い浮かばないけど。
ところで、ダウンキャストの必要な典型的な場面はどんなのがあるだろう。
- J2SE 1.4 以前でコレクションを扱うとき
- Object#clone の戻り値
- equals, compareTo の引数
- Graphics -> Graphics2D とかその他 Java2D 周り
- URLConnection -> HttpURLConnection
みんなメソッドの引数、戻り値関連だな。当たり前だけど。