有没有办法循环变量名称?

例如,我有以下变量:Var1,Var2,Var3,Var4,Var5 – 总共5个变量。 所有都有独特的数据,我想使用for循环循环它们。

//String Var1 = something, Var2 = something etc.. for (int i = 1; i <= 5; i++) { Var(i) = "something else"; } //ie I change Var(1), Var(2) etc.. to something else respectively. 

为了进一步澄清,最终我想应用此方法来迭代我的程序中的多个组件。 我有大量具有样式名称的组件(例如label1,label2,label3等),并且想要更改这些组件的值而无需单独设置它们的值。

如果将变量定义为类的成员,则可以使用reflection执行此操作。 对于方法参数或局部变量,它是不可能的。 与此类似的东西:

 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); } 

您无法遍历(本地)变量。 您可以使用数组或List ,然后遍历其元素:

 for (Object item : myListOfObjects) { // do the processing } 

使用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); } } 

只要所有变量使用相同的类型,您就可以使用Array来存储所有变量。 然后,您可以使用for循环遍历数组。 像这样的东西:

  String[] V = {"var1","var2","var3","var4","var5"}; int arraylength = V.length; for(int i = 0; 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); } } }