2012-03-05 160 views
0

好的,我不完全確定我是否正確地使用了標題,但是我想使用int變量來定義另一個int來檢查方法。換句話說,我希望能夠讓int/name/thingy變量通過++語句,然後下一個變量將通過該方法。這可能嗎?在Java中使用變量作爲其他變量的名稱

+0

像...指針?你能用僞代碼或其他語言向我們展示你在想什麼嗎? – Kylar 2012-03-05 13:53:44

+2

你能否提供一些pseduo代碼來解釋你想要做什麼? – 2012-03-05 13:53:49

+0

它可能是,你到目前爲止嘗試過什麼? – 2012-03-05 13:54:07

回答

1

如果您不需要用名稱創建一個新變量並將其存儲在另一個變量中,那麼反射就是一種方法。

String varName = "x"; 

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

真的不能說我明白了... – 2012-03-05 13:56:35

+0

似乎更好/不同...我會試試這個,謝謝你,+1 – 2012-03-05 14:00:46

1

你幾乎肯定要使用像一個MapList(本質上是一個密集的地圖與小的正int鍵)。

0

你說「我想使用一個int變量定義另一個詮釋」你的意思是這樣

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 

從你說的話,那就是它似乎你說的。如果是這樣的話,我認爲你不能這樣做。我的記憶說,有一種方法可以讓你確定一個對象的類型,但是將它用作另一個變量的聲明......我不知道你是否可以這樣做。

+0

不,不是真的。我想說「使用x的值作爲Y的名字」,並且有64個Y,每個都有自己的值 – 2012-03-05 13:59:30

4

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爲好的答案。 – 2012-03-05 14:42:26

相關問題