2012-03-05 6 views
0

申し訳ありませんが、私はタイトルの権利を語っているとは完全には分かりませんが、メソッドを経由する別のintを定義するint変数を使用します。言い換えれば、int/name/thingy変数に++ステートメントを実行させ、次の変数がメソッドを通過するようにしたいと考えています。これは可能ですか?Javaの他の変数の名前として変数を使用する

+0

Like ...ポインタ?あなたは擬似コードや他の言語で私たちにあなたの考えを示してもらえますか? – Kylar

+2

あなたは何をしたいのかを説明するためにpseduoコードを少し提供できますか? –

+0

それはあなたが今までに何を試したのだろうか? –

答えて

1

別の変数に格納された名前を持つ新しい変数を作成する必要がない場合は、リフレクションが必要です。

String varName = "x"; 

Point2D point = new Point(15, 2); 
Integer val = (Integer)Point.class.getDeclaredField(varName).get(point); 
assert val == 15; 
+0

本当に私は理解できません... –

+0

はより良い/異なっているようです...私はこれを試し、ありがとう+1 +1 –

1

あなたはほぼ確実にMapまたはListのようなもの(小さな正intキーと本質的に密なマップ)を使用することにしたいです。

0

あなたは、あなたがそれはあなたが言っている表示されるものである、言ったから

int a = 0; //declare a new variable a of type int and assign it to zero 
a b = 0; //declare a new variable b of type a which is an int and assign it to zero 

のようなものを意味するのです「私は別のint型を定義するにはint型の変数を使用したい」と言います。そうであれば、私はあなたがそれをすることができるとは思わない。私の記憶によれば、オブジェクトの型を決定する方法がありますが、それを別の変数の宣言として使用する方法があります。私はあなたがそれを行うことができるかどうかわかりません。

+0

いいえ、本当にありません。私は「Yの名前にxの値を使う」と言いたいし、64 Yのようにそれぞれ独自の値を持っています。 –

4

あなたの問題を解決するのは、int配列です。配列は、あなたのint型の(「変数」)に格納、別のいずれかが索引throught実行します(あなた++の操作):あなたはという名前変数が必要な場合は、その後、あなたはマップを使用することができます

int[] values = loadValuesInArray(); // some magic to get the populated array 
for (int i = 0; i < values.length; i++) { 
    myMagicMethod(values[i]);   // calling the method with int values 
} 

Map<String, Integer> variables = new HashMap<String, Integer>(); 
variables.put("a", 1); 
variables.put("b", -10); 
variables.put("c", 25); 

myMagicMethod(variables.get("b")); // calls method with value from "variable" b 
+0

はい、私は現在これがおそらく最良の選択肢だと言っています。ブロックには別のものがあります。これは、配列内の各変数に対して何かできることです。 +1は良い答えです。 –

関連する問題