- 締切済み
変数を動的に利用するには?
Javaプログラミングの質問です。 下記のように変数を定義しておき、 String aaa_0 = "AAA1"; String aaa_1 = "AAA2"; 例えば、これらの変数の値を次のようにして使えますでしょうか? (できませんが、やりたいことは、なんとなく伝わったかと思います。) for(int i=0;i<2;i++){ System.out.println("aaa_" + i); } 変数を動的に呼び出せますでしょうか? アドバイスお願い致します。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- okbakasine
- ベストアンサー率27% (67/242)
配列使おうよ。
- ninoue
- ベストアンサー率52% (1288/2437)
String Array として使用できます。 次を参照ください。 public class zz { public static void main(String[] args) { String saa = "String aa"; String sab = "String ab"; String sac = "String ac"; String sad = "String ad"; String saz = "String az"; String[] straa = {saa,sab,sac,sad}; straa[3] = saz; for(int i = 0; i < 4; i++) System.out.println( "straa[" + i + "] = " + straa[i]); } }
- 中村 拓男(@tknakamuri)
- ベストアンサー率35% (674/1896)
できませんが, Map で同等のことはできます。
- salsberry
- ベストアンサー率69% (495/711)
aaa_0やaaa_1がローカル変数ではなくてフィールド(クラス変数やインスタンス変数)であれば、リフレクションを使ってこんな風に書けます。あまりお勧めはしませんが。 public class X { private String aaa_0 = "AAA1"; private String aaa_1 = "AAA2"; public static void main(String[] args) { X obj = new X(); try { for (int i=0; i<2; i++) { java.lang.reflect.Field f=obj.getClass().getDeclaredField("aaa_"+i); System.out.println(f.get(obj)); } } catch (Exception e) { e.printStackTrace(); } } }
- Tacosan
- ベストアンサー率23% (3656/15482)
素直に配列を使うのが吉かと.