海藤と申します。
さっそく質問なのですが、String変数を要素とした配列を引数と
して与えるとその要素であるString変数に値が入っている配列が
戻り値として戻ってくるというメソッドを作りたいのですが、
うまくいきません。
Vectorだとできてしまうのですが…
ソースコードは以下のようです。
(中略)
String All[] = {index1,index2,index3};
String sql = select * from tableA where id=3;
All = searchDetail(sql,All);
System.out.println(配列要素 = + All[0]);//こちらは表示されます。
System.out.println(String変数 = + index1);//こちらは変数部分が表示されませ
ん。でも、こちらも表示させたいです。
(中略)
public String[] searchDetail(String sql,String[] All){
try{
open();
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
for(int k=0; k < All.length ;k++){
All[k] = rs.getString(k + 1);
}
}
rs.close();
stmt.close();
close();
}
catch(SQLException ex){
System.out.println(SQLError : + ex);
System.out.println(SQL文 : + sql);
}
catch(java.lang.Exception ex){
System.out.println(Error : + ex);
}
return All;
}
(後略)
となっているのですが…ちなみに同様のプログラムをStringをVector
に変えて行ってみると、表示部分で両方とも表示されるのですが…
よろしくお願いします。
index1にAll[0]と同じ内容が入っていることを期待していますか?
> All[k] = rs.getString(k + 1);
これは、All[k]に入っているindex1を捨てて
別の文字列を入れるという意味です。
index1自体を変更するものではありません。
回答ありがとうございます。
うーん、VectorとStringではぜんぜん違うようですね…配列にしてしまえば
Java.util.VectorもJava.lang.Stringも同じとか考えていたのですが、ぜんぜん
見当違いなかんがえだったようです。
どうもありがとうございました。