本地方法变量,无法识别

时间:2012-11-26 17:42:07

标签: java

我有一个方法public int bar(),其中我声明了int total(在方法体中ofc)。所以这应该是一个简单的局部变量,那就是eclipse抱怨

Description Resource    Path    Location    Type
The local variable total may not have been initialized  Repository.java /proj_individual/src/repo   line 35 Java Problem

一般例子:

public int foo(){
    int total;
    for(... : ...){
        total += 1; // complains
    }
    return total;// complains
}

和我的确切代码:

public int getLocatars(){
    int total;
    for ( Map.Entry<Apartment, List<Expense>> entry : dic.entrySet() ) {
        if(entry.getKey().isDebt()){
            total += entry.getKey().getNrProple();
        }
    }
    return total;
}

我不知道我做错了什么,所以任何想法都有帮助,谢谢。

2 个答案:

答案 0 :(得分:6)

您的变量未明确分配值,因此您无法读取它。

想象一下,如果您的输入集为空,或者没有debt个条目......您想要返回什么值?

更重要的是,即使 进入循环的最内部,您希望添加到什么初始值?

与静态和实例字段不同,局部变量没有默认值:您必须在读取它们之前为它们赋值。我怀疑你只是想要:

int total = 0;

答案 1 :(得分:4)

从以下位置更改:

int total;

为:

int total = 0;

为了更好地理解,请参阅:differences between declaration and initialization.