ITedite

パラメータ化された型の代入

原則、右辺のパラメータが左辺で成り立つかどうかをチェックすればよい。

ArrayList arry = new ArrayList();
List list = arry;

こちらは、StringがObjectのサブクラスであるので成り立つ。


ArrayList arry = new ArrayList();
List list = arry;

こちらは、ObjectがStringのサブクラスではないのでコンパイルエラーになる。


ArrayList list = new ArrayList();

こちらは、ObjectはStringではないのでコンパイルエラーになる(ポリモーフィズムは適用されない)


ArrayList list = new ArrayList();

こちらは、StringがObjectのサブクラスなので成り立つ。


ArrayList list = new ArrayList();

こちらは、StringはStringなので成り立つ。