重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

こんにちは。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)のように添え字を代入したいのですがいきずまっております。

どなたかご教示いただけないでしょうか?

A 回答 (2件)

変数名が固定だからという話でしょうか?



代入式ではなく、
setメソッドが用意されていて、それが使えるのであれば
動的メソッドの呼び出しにて対応できます。

なぜなら、動的メソッドの呼び出しの手法では、
メソッドの名前は動的にString型を用意して
引数として、与えるからです。
添え字, 配列名[添え字]
の二つの引数を取るメソッドを定義して
setXXXN()を動的に呼び出します。
ちなみにN は 1~8になるでしょう。
そこの呼び出し部分自体を
ループで回して、8回呼び出してみるのもいいでしょう


詳しくは私自身が以前質問した
↓を参照して、真似して改造してみてください。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=838724


ちなみに、動的メソッドの対象となるメソッドは
publicでなければなりません。
この場合はsetメソッドなので、
たぶんpublicなので、問題ないでしょうが。

以上

この回答への補足

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

補足日時:2004/06/18 20:57
    • good
    • 0

同じ形のものを何度も使うのであれば


普通に配列などを使うのではだめなのでしょうか?

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

変数の添え字が上限が決まっているならば
可能でしょうが。

この回答への補足

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

補足日時:2004/06/18 21:04
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!