• ベストアンサー

FOR文の使用方法について (変数のセット)jsp

こんにちは。JSPでfor文の添え字(i)を変数の添え字に反映したいと思っております。 <% for(int i=1;i<8;i++){  ResultSet rs_q(i)_ans_yes = qs_cnt.q(i)_ans_yes();  ResultSet rs_q(i)_ans_no = qs_cnt.q(i)_ans_no(); } %> rs_q1_ans_no = qs_cnt.q(1) rs_q2_ans_no = qs_cnt.q(1) rs_q3_ans_no = qs_cnt.q(1) rs_q4_ans_no = qs_cnt.q(1) とq(i)のように添え字を代入したいのですがいきずまっております。 どなたかご教示いただけないでしょうか?

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

  • ベストアンサー
  • lawson
  • ベストアンサー率44% (29/65)
回答No.2

変数名が固定だからという話でしょうか? 代入式ではなく、 setメソッドが用意されていて、それが使えるのであれば 動的メソッドの呼び出しにて対応できます。 なぜなら、動的メソッドの呼び出しの手法では、 メソッドの名前は動的にString型を用意して 引数として、与えるからです。 添え字, 配列名[添え字] の二つの引数を取るメソッドを定義して setXXXN()を動的に呼び出します。 ちなみにN は 1~8になるでしょう。 そこの呼び出し部分自体を ループで回して、8回呼び出してみるのもいいでしょう 詳しくは私自身が以前質問した ↓を参照して、真似して改造してみてください。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=838724 ちなみに、動的メソッドの対象となるメソッドは publicでなければなりません。 この場合はsetメソッドなので、 たぶんpublicなので、問題ないでしょうが。 以上

sys_com
質問者

補足

ご返事遅れまして申し訳ございませんでした。 ご指摘いただいたURLを参考に再度チャレンジしたいと思います。

その他の回答 (1)

  • chi-kon
  • ベストアンサー率43% (58/132)
回答No.1

同じ形のものを何度も使うのであれば 普通に配列などを使うのではだめなのでしょうか? 変数に使われている数字と配列の添え意は 見た目が同じなだけであってモノとしては別物です。 どうしてもこの設計で行わなければいけない理由があるのであれば reflectionを使えば可能ですが、 あまりお勧めできません。 結局フィールドは先にハードコーディングしておかなければならないし。 変数の添え字が上限が決まっているならば 可能でしょうが。

sys_com
質問者

補足

ご連絡が遅れまして申しわけありませんでした。 特に設計などの制約はございません。 配列を使って再度チャレンジしたいと思います。

関連するQ&A