読者です 読者をやめる 読者になる 読者になる

Effective Javaを読んでいる㉕

Java

配列よりリストを

配列と総称型の違い(共変)

  • SuperのサブタイプがSubならSubはSuperのサブタイプ
  • ListはListのサブタイプではない

  • Object[]Objectのサブクラス(あらゆるクラス)が格納できるが格納された配列の型のサブクラスの値しか格納できない(が、コンパイルが通ってしまう)

Object[] array =  new Long[1];//Longの配列をarrayに格納
array[0] = "test";//ここで例外がスローされるが、コンパイルエラーにはならない