我对此问题感到非常厌倦,我不知道该怎么办。
import ...
class ...
private ArrayList <Operation> operationList = new ArrayList<Operation>();
@Override
public Collection<String> lineList() {
Set <String> groupOperation = new HashSet<String>();
Operace newOperation= null;
LogFileReader reader = new LogFileReader(nameFile);
LogEntry line = reader.nextLine();
while(reader.existsLine()) {
for(Operation whatever2: operationList) {
if(line.getOperation().equals(whatever2.getName())) {
whatever2.setAmmount(whatever2.getAmmount()+1);
line = reader.nextLine();
}
}
newOperation = new Operation(line.getOperation());
newOperation.setAmmount(1);
groupOperation .add(newOperation);
line = reader.nextLine();
}
....
return groupOperation;
}
(如果我将删除整个FOR,似乎它有效,但我需要计算。)
在课程操作中只有“名字”和“安装”的加号和设置。
EDIT1:“线程中的异常”AWT-EventQueue-0“java.lang.NullPointerException”
我希望有人能理解,
感谢大家,
MmM ......
答案 0 :(得分:1)
在for
循环中,您有以下这一行:
line = reader.nextLine();
这没有对行存在的任何检查,因为你已经完成了条件 - &gt; reader.existsLine()
。如果没有更多的行可供阅读,这使得它可以读取行,并且可能在while
中失败或最后一个语句。
我不确定,你真的想读取for
循环中的行。如果是,则将if条件包装为:
if(reader.existsLine()){
line = reader.nextLine();
}