Javaもまだまだ驚きがいっぱい


自分の不勉強を晒すようだけど、まだまだJavaも未熟だなと思う今日この頃です。

最近知ったJava5の新機能にcovariant(共変)というのがあるのを知りました。
オーバーライドしたときに、戻り値の型にサブクラスを指定できるようになったんですね。
例えばこんな感じ。
親クラス
 public class Hoge {
     public Hoge get() {
         return new Hoge();
     }
 }
親クラスを継承し、get()メソッドをオーバライド。戻り値の型にサブクラスを指定できる。
 public class Fuga extends Hoge {
     public Fuga get() {
         return (Fuga) Hoge.get();
     }
 }

もう一個、Arrays.asListメソッドは「固定サイズのリスト」を返すんですね。
addメソッドで落っこちてビックリしたよ。

Comment