好吧,我不完全确定我的标题是正确的,但我想使用一个int变量来定义另一个int来通过一个方法。换句话说,我希望能够让int / name / thingy变量通过++语句,然后下一个变量将通过该方法。这可能吗?
答案 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)
您可以使用反射。
http://java.sun.com/developer/technicalArticles/ALT/Reflection/
http://www.java2s.com/Tutorial/Java/0125__Reflection/Catalog0125__Reflection.htm
或看到有想法。
答案 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)
您几乎肯定希望使用类似Map
或List
的内容(本质上是一个带有小型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
根据你的说法,这就是你所说的。如果是这种情况,我认为你不能这样做。我的记忆说有一种方法可以让你确定一个对象的类型,但是把它用作另一个变量的声明......我不知道你是否可以这样做。