エントリーの編集
![loading...](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/common/loading@2x.gif)
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
記事へのコメント4件
- 注目コメント
- 新着コメント
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
![アプリのスクリーンショット](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/entry/app-screenshot.png)
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
ジェネリクスの代入を理解する その1
Javaのジェネリクスはかなり強力で、相当の型を表現できるのですが、 代償として非常に複雑なものとなっ... Javaのジェネリクスはかなり強力で、相当の型を表現できるのですが、 代償として非常に複雑なものとなっています。 ややこしいのは、オブジェクト指向の部分の型の代入互換性と、 ジェネリクス型パラメータの部分の代入互換性は、表現こそ似ているものの、 その意味するところはまるで違うと言うことにあります。 端的には、C extends B, B extends Aの関係があるとして、 型B にはサブクラスであるCをキャストなしに安全に代入することができます。 B b = new C(); しかし、ジェネリクス型パラメータの場合の List<B> listB = new ArrayList<C>(); はコンパイルエラーとなります。 List<? extends B> listBEx = new ArrayList<C>(); であれば代入が可能です。 このように、同じ継承階層の型を扱うのにもかかわ
2010/11/06 リンク