我有一个方法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;
}
我不知道我做错了什么,所以任何想法都有帮助,谢谢。
答案 0 :(得分:6)
您的变量未明确分配值,因此您无法读取它。
想象一下,如果您的输入集为空,或者没有debt
个条目......您想要返回什么值?
更重要的是,即使 进入循环的最内部,您希望添加到什么初始值?
与静态和实例字段不同,局部变量没有默认值:您必须在读取它们之前为它们赋值。我怀疑你只是想要:
int total = 0;
答案 1 :(得分:4)
从以下位置更改:
int total;
为:
int total = 0;
为了更好地理解,请参阅:differences between declaration and initialization.