Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

ArrayListなどの型変換について(ジェネリクス)

こんにちは。また質問させていただきます。

クラスOyaとKoがあり、その2クラスは親子関係にあります。

testMethod()がArrayList<Ko>を返す場合、

ArrayList<Oya> alOya = testMethod();

としてしまうと型変換できない、というエラーになってしまいます。
戻り値のArrayListのなかの一つ一つにに対して、繰り返し処理で明示的にキャストするしかないのでしょうか?

調べてみたところ、<? extends XXX>という書き方を見つけたので、
ArrayList<? extends Oya> testMethod(){
    return ArrayList<Ko>; //(書き方ヘンですがイメージで)
}
というようにしてみたのですがこれもダメでした。

ジェネリクスを指定しなければエラーにはならないのですが、それもちょっと・・・。

なにか他によい書き方はありますでしょうか?
よろしくお願い致します。

1

回答

8319

閲覧

1件の回答

評価

0

すみません。自己解決しました。

ArrayList<? extends Oya> alOya = testMethod();

で戻り値はArrayList<Ko>でいけました。


お騒がせしました。m(_ _)m

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。