有什么办法可以循环变量名吗?
问题描述:
因此,例如我有以下变量: Var1,Var2,Var3,Var4,Var5 - 总共5个变量。 所有具有唯一的数据,我想循环使用for循环。有什么办法可以循环变量名吗?
//String Var1 = something, Var2 = something etc..
for (int i = 1; i <= 5; i++)
{
Var(i) = "something else";
}
//i.e I change Var(1), Var(2) etc.. to something else respectively.
为了进一步阐明,最终我想要应用此方法遍历程序中的多个组件。我有大量带有样式名称的组件(例如label1,label2,label3等),并且想要更改这些组件的值而无需单独设置它们的值。
答
可以与反射做到这一点,如果变量被定义为一类的成员。对于方法参数或局部变量,这是不可能的。一些与此类似:
Class currentClass = getClass();
Field[] fields = currentClass.getFields();
for (Field f : fields) {
System.out.println(f.getName());
}
如果您打算改变它变得有点复杂,你也必须要考虑的变量类型的值。例如。您可以将String
分配给类型为Object
的变量,但不能反过来。
答
如果数据类型的变量是相同的,我会建议去一个数组。 你可以尝试这样的事情
String[] Var = {"something","something2","something else"};
for (String var : Var)
{
System.out.println(var);
}
答
使用Java 8 Arrays很简单:
Arrays.stream(varArray).forEach(System.out::println);
用法:
public class LoopVariables {
public static void main(String[] args) {
String[] varArray = new String[]{"Var1", "Var2", "Var3", "Var4", "Var5"};
Arrays.stream(varArray).forEach(System.out::println);
}
}
答
只要所有的变量使用相同类型,您可以使用数组来存储所有这些数组。然后你可以使用for循环遍历数组。类似这样的:
String[] V = {"var1","var2","var3","var4","var5"};
int arraylength = V.length;
for(int i = 0; i<arraylength; i++){
System.out.println(V[i]);
}
答
试试这段代码。
public class Main {
public static void main(String[] args) {
Insan i1[]=new Insan[5];
i1[0].name="Ali";
i1[0].age=19;
i1[1].name="Pakize";
i1[1].age=29;
i1[2].name="Kojiro Hyuga";
i1[2].age=30;
i1[3].name="Optimus Prime";
i1[3].age=40;
for (int ib=0; ib < 4; ib++) {
System.out.println("Name: " + i1[ib].name + " Age: "+i1[ib].age);
}
}
}
什么语言? – PeeHaa
爪哇,对不起模糊 –
为什么没有人在[java]保持规范重复?毫无疑问,这被问过百次。 – BalusC