私はこのようなことをしようとしています:
int x_1 = 1;
int x_2 = 2;
String s1 = "x";
String s2 = "_1";
s1
&はユーザーまたはループからの変数であり、次のようなことを行って正しい変数s2
を呼び出せるようにしたいと考えています。int
(s1+s2)
出来ますか?
私はこのようなことをしようとしています:
int x_1 = 1;
int x_2 = 2;
String s1 = "x";
String s2 = "_1";
s1
&はユーザーまたはループからの変数であり、次のようなことを行って正しい変数s2
を呼び出せるようにしたいと考えています。int
(s1+s2)
出来ますか?
多分あなたはこれを使うことができますMap
。
Map<String,Integer> map = new HashMap<>();
map.put("x_1",1);
map.put("x_2",2);
String s1 = "x";
String s2 = "_1";
map.get(s1+s2);
したがって、基本的に、インスタンス内のフィールドを見つけることができる必要がありますObject
何かのようなもの...
Class clazz = obj.getClass();
Field field = clazz.getDeclaredField(name);
その後、 メソッドField.setInt(Object, int)
とField.getInt(Object)
メソッドを使用して値を取得できます。
The Reflection APIを読みたいと思うかもしれません
リフレクションは複雑である必要はありません。beanutilsを見てください。それが機能するには、変数はローカル変数だけでなく、オブジェクトの一部である必要があります。PropertyUtilsのようなものがおそらく機能します。
Hashtable<String,Integer>
のような名前のペアを格納するために使用してみてください["x_1", 1]
。その後、簡単に文字列を作成し、その値を取得して使用できます。