你可以在不使用数组的情况下在循环中声明具有不同变量名的多个变量吗?

时间:2013-09-17 18:07:27

标签: java string variables loops declaration

我想知道是否可以在循环中声明一个像“vx”这样的变量,并且每次循环时都会这样,x的值会发生变化。这样当循环运行5次时,变量将被命名为v1,v2,v3,v4,v5。

3 个答案:

答案 0 :(得分:1)

基本上,您不能在循环中声明具有不同变量名的变量,因为Java是静态类型语言。

在具有不同名称的循环内声明(初始化)变量是没有意义的。毕竟,如果变量的范围就在循环内,变量就会超出范围并被销毁(垃圾收集)。

如果要初始化类变量,可以尝试使用Reflection API,但应该避免使用many reasons

答案 1 :(得分:0)

这肯定是不可能的,因为Java是静态类型的。变量必须在编译时可用,但在运行时执行循环。

答案 2 :(得分:0)

您无法在java中动态命名变量。但你可以做如下的事情

   List<String> dataList=new ArrayList<>(Arrays.asList("a","b"));
   Map<String,String> map=new HashMap<>();
   String preFix="var";
   char postFix='1';
   for(String i:dataList){
       map.put(preFix+postFix,i);
       postFix++;
   }
    System.out.println(map);

Out put:

  {var1=a, var2=b}