使用变量作为Java中其他变量的名称

时间:2012-03-05 13:51:02

标签: java

好吧,我不完全确定我的标题是正确的,但我想使用一个int变量来定义另一个int来通过一个方法。换句话说,我希望能够让int / name / thingy变量通过++语句,然后下一个变量将通过该方法。这可能吗?

5 个答案:

答案 0 :(得分:4)

int数组可能会解决您的问题。数组存储你的int(“变量”),另一个存储索引(你的++操作):

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

答案 1 :(得分:2)

答案 2 :(得分:1)

如果你不需要创建一个带有名字的新变量,存储在另一个变量中,那么反射就是一种方法。

String varName = "x";

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

答案 3 :(得分:1)

您几乎肯定希望使用类似MapList的内容(本质上是一个带有小型int密钥的密集地图。)

答案 4 :(得分:0)

你说“我想用一个int变量来定义另一个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

根据你的说法,这就是你所说的。如果是这种情况,我认为你不能这样做。我的记忆说有一种方法可以让你确定一个对象的类型,但是把它用作另一个变量的声明......我不知道你是否可以这样做。