• ベストアンサー

コンパイルエラー”初期化されていない可能性があります”

いつもお世話になっております。 JSPで画面を表示させるプログラムを作成しているのですが、 プルダウンで選択されたものによって配列の内容(要素数含め)が変わるような動きをさせたいのですが、”初期化されていない可能性があります”というコンパイルエラーが出てしまいます。 ソースは以下のようになっています。 String[] kotei; if (request.getParameter("HINSHU").equals("XXX")){ kotei[0]="00"; kotei[1]="01"; kotei[2]="02"; kotei[3]="03"; kotei[4]="04"; kotei[5]="05"; kotei[6]="06"; kotei[7]="07"; kotei[8]="08"; kotei[9]="09"; kotei[10]="10"; kotei[11]="11"; kotei[12]="12"; kotei[13]="13"; kotei[14]="14"; kotei[15]="15"; kotei[16]="16"; kotei[17]="17"; kotei[18]="18"; kotei[19]="19"; kotei[20]="20"; } else if (request.getParameter("HINSHU").equals("***")){ kotei[0]="00"; kotei[1]="01"; kotei[2]="02"; kotei[3]="03"; kotei[4]="04"; kotei[5]="05"; kotei[6]="06"; kotei[7]="07"; kotei[8]="08"; kotei[9]="09"; kotei[10]="10"; kotei[11]="11"; kotei[12]="12"; kotei[13]="13"; kotei[14]="14"; kotei[15]="15"; kotei[16]="16"; } 初期化する為にはどのような処理が必要なのでしょうか? 配列に関するものを本やサイトで調べ回ったのですが、いまいちわからない状況です。 本当に初歩的なことで申し訳ありませんがご教授お願い致します。

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

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

kotei = new String[20]; ↑初期化。 宣言と同時に String[] kotei = new String[20]; でもOK。 ついでに配列の中身も初期化しておくことが望ましいかな。(場合にもよるかも。)

hisajiro
質問者

補足

早速の回答ありがとうございます。 要素数が条件によって変わってしまう場合は条件判定の度に初期化させるのでしょうか?

その他の回答 (3)

回答No.4

java.utilパッケージのVectorとかArrayListを使うといいと思います。 詳細はAPI(javadoc)を見てもらえばわかると思います。 ただどちらも引数なしのコンストラクタを使うと初期容量が10のようなので、初期容量指定のコンストラクタで生成する方が良いでしょう。 初期容量は最低でも追加する要素の最大値もあれば大丈夫でしょう。

hisajiro
質問者

お礼

丁寧に教えていただき、有難うございました。 おかげで今回のエラーは出なくなりました。

回答No.3

あっ…#1さんのを見て配列の長さを間違えてることに気づいた…。orz 訂正 ×20 ○21 ですね。

回答No.1

String[] kotei; kotei = new String[21]; とりあえず、21個にしてみました。 上だけだとkoteiを宣言はしているけど、 実際に参照先を格納する箱が用意されてません。

関連するQ&A

専門家に質問してみよう