【问题标题】:Array variable "might not have been initialized"数组变量“可能尚未初始化”
【发布时间】:2011-05-09 12:10:05
【问题描述】:

我得到错误:

TestCounter.java:115: 变量 计数器可能不是 初始化 计数器[i] = 新计数器(i);

我不知道如何解决它。我知道我的班级Counter 有效。下面是我的代码,如果你能看一下我会很高兴。这段代码封装在 TestCounter 类的 main 方法中。

  if(success) 
  {  
   Counter[] counters;

   for(int i=0; i<30; i++)
   {
       counters[i] = new Counter(i);
       System.out.println(counters[i].whatIsCounter());
   }
  }

【问题讨论】:

    标签: java


    【解决方案1】:

    你还没有创建数组,你只是声明了变量。

    你需要这样做:

    Counter[] counters = new Counter[30];
    

    或类似的东西

    【讨论】:

    • 那行得通,但是有没有办法可以创建任意大小的数组?我认为这就是我宣布它时所做的:/
    • @Calle:不。Java 中的数组是固定大小的。如果你想要一个可变长度的序列,那么使用 List 集合,而不是数组。
    【解决方案2】:

    您需要初始化counters 数组。 像这样的:

    if(success) 
      {  
       Counter[] counters=new Counters[30];
    
       for(int i=0; i<30; i++)
       {
           counters[i] = new Counter(i);
           System.out.println(counters[i].whatIsCounter());
       }
      }
    

    通过声明Counter[] counters,您实际上并没有创建一个数组,您只是声明了一个counters 类型为Counter[] 的引用变量。

    Counter[] counters=new Counters[30] 将创建一个大小为 30 的 Counter 类型的数组,每个元素都持有空引用。

    【讨论】:

      猜你喜欢
      • 2012-03-25
      • 2015-07-04
      • 1970-01-01
      • 2013-11-24
      相关资源
      最近更新 更多