循环内部的局部变量未初始化

时间:2018-04-14 16:38:17

标签: java

我在编译时遇到错误:The Local Variable may not have been initialized。我在使用之前声明并初始化了局部变量doc,据我所知,它与while循环中的doc存在于同一范围内。我已经在SO上看到了几个关于这个主题的问题,但是大多数问题都没有初始化变量,这似乎不是我的问题。我将衷心感谢您的帮助。

我在抽象类中声明方法arrayIntKey,并从main传递txt文件。错误发生在while循环内。

protected KeyValue[] arrayIntKey(int size,File file) throws FileNotFoundException {
    Scanner doc = new Scanner(file); 
    Integer key;
    String value;
    KeyValue[] intKey = new KeyValue[size]; 
    int index=0;
    while (doc.hasNext()) { //ERROR: local variable doc may not have been initialized
        key = doc.nextInt();
        value = key.toString();
        intKey[index]= new KeyValue(key,value);
        ++index;
    }
    return intKey;
}

1 个答案:

答案 0 :(得分:0)

您有一个名为文件文件类型的参数,这可能会导致编译器错误地解释 doc 的初始化。

使用驼峰案例约定:

protected KeyValue[] arrayIntKey(int size,File file) throws FileNotFoundException {