0

我对这个问题感到非常厌倦,我不知道该怎么办。

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;
}
  • 问题出在WITH FOR(xy: z) IF ()时,其他事情都有效。
  • (如果我要删除整个 FOR,它似乎可以工作,但我需要数数。)

  • 在类操作中只有“name”和“ammount”的 GETTER 和 SETTER。

    1. 解释
    2. 我读了一个文件。
    3. 我只从文件中读取主题。
    4. 我像操作一样加载它(名称=标题,数量=文件中有多少次相同)
    5. 我把它给 ArrayList = 它工作得很好!
    6. 从ArrayList到Set,就是接口。
    7. 与 GUI 的接口。

EDIT1:“线程中的异常“AWT-EventQueue-0”java.lang.NullPointerException”

希望大家明白,

感谢大家,

嗯...

4

1 回答 1

1

在你的for循环中,你有这一行:

      line = reader.nextLine();

正如您在 while 条件 -> 中所做的那样,这没有任何在线存在检查reader.existsLine()。这使它可以读取行while,如果没有更多行要读取,可能会在此处或中的最后一条语句失败。

我不确定,您是否真的想阅读for循环中的行。如果是,则将 if 条件包装为:

       if(reader.existsLine()){
          line = reader.nextLine();
       }
于 2012-10-27T00:38:43.117 回答