• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:(ソースコード有)ArrayListについて)

ArrayListについて

このQ&Aのポイント
  • ArrayListとは、Javaのデータ構造の一つで、可変長の配列を扱うことができるクラスです。
  • ArrayListは要素の追加や削除が簡単に行えるため、便利なデータ構造としてよく使われます。
  • しかし、ArrayListには制約がなく、異なる型の要素を格納することができるため、データの型の一貫性が保証されず、予期せぬエラーが発生する可能性があります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

順を追って説明しましょう。 > static ArrayList data; ArrayListを宣言していますが、そのArrayListの中には、 どういうデータ型のものを格納するのかを明記していません。 その為、『どのような型でも入れることが出来る状態』にあります。 > data.add(new MyObject("Hello")); MyObjectというデータ型をdataに格納しようとしています。 > data.add(s); sはString型なので、String型をdataに格納しようとしています。 この時点で、data変数には、MyObjectとStringという2つの型が 格納されている状態にあります。 このときに > MyObject myobj = (MyObject)obj; とMyObject型であることを前提として処理されても、String型の データはMyObject型でありませんから、型変換に失敗してしまいます。 これは、今回のように、本来MyObject型として処理しようとして いるロジックを書こうとしていたのに、実はString型が混じっていて エラーになってしまうバグを生み出しやすいという問題があります。 これは型指定を厳密に指定する言語としては致命的です。 それを解決するものとしてジェネリクスがあります。

関連するQ&A