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メソッドで落っこちてビックリしたよ。