2012-03-05 192 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

相关问题