目次
1. リスト初期化
参照型の変数は「参照」を保持しています。
「参照」とはメモリ上(一時的にデータを保管しておく場所)の、値が格納されている場所のことで、
オブジェクト(変数)の生成はnew演算子を使っておこないます。
ではまずはじめに、さかなリストを作成します。
// さかなリスト
List<String> fishLsit = new ArrayList<String>();
fishLsit.add("あじ");
fishLsit.add("ししゃも");
// 出力
System.out.println("①さかなリスト:" + fishLsit.toString());
出力結果は以下の様になります。
①さかなリスト:[あじ, ししゃも]
つぎに、リストの初期化をおこないます。
// リスト初期化
fishLsit = new ArrayList<String>();
// 出力
System.out.println("②さかなリスト初期化:" + fishLsit.toString());
初期化後の出力結果は以下の様になります。
②さかなリスト初期化:[]
初期化され、リストの中身が空になっています。
つぎに、初期化後のリストに要素を追加してみます。
fishLsit.add("しゃけ");
fishLsit.add("さんま");
// 出力
System.out.println("③要素追加:" + fishLsit.toString());
要素追加後の出力結果は以下の様になります。
③要素追加:[しゃけ, さんま]
初期化後に追加した要素のみがリストに入っています。
初期化していない場合は [あじ, ししゃも, しゃけ, さんま] が要素となります。
2. null代入
ではここで、ここまで作成したさかなリストにnullを代入してみます。
// null代入
fishLsit = null;
// 出力
System.out.println("④null代入:" + fishLsit.toString());
参照型の変数がnullだと、参照が何もない状態となり、
fishLsitでjava.lang.NullPointerExceptionになってしまいます。
3. おまけ
1.でリストの初期化をおこないましたが、初期化しない場合の動きをみていきたいと思います。
今度はあたらしく、花リストを用意します。
// 花リスト
List<String> flowerLsit;
// 出力
System.out.println("⑤花リスト:" + flowerLsit.toString());
これだと「ローカル変数 flowerLsit が初期化されていない可能性があります」
というコンパイルエラーになります。これはnullが入る可能性があることが原因のため、
nullにならないよう、やはり初期化が必要ということになります。