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;
}
  • 問題は while WITH FOR(xy: z) IF ()にあり、他のことが機能します。
  • (FOR全体を削除すると、うまくいくようですが、カウントする必要があります。)

  • IN THE CLASS 操作は、「name」と「ammount」の GETTER と SETTER のみです。

    1. 説明
    2. ファイルを読みました。
    3. ファイルからトピックのみを読み取ります。
    4. それをオペレーションのようにロードします(名前=タイトル、金額=ファイル内で同じ回数)
    5. 私はそれをArrayListに渡します= ITは非常にうまく機能しません!!!
    6. ArrayList から Set へ、それがインターフェイスへ。
    7. GUI へのインターフェイス。

EDIT1:「スレッド「AWT-EventQueue-0」の例外 java.lang.NullPointerException」

どなたかご理解いただければと思いますが、

みんなのおかげで、

うーん ...

4

1 に答える 1

1

forループには、次の行があります。

      line = reader.nextLine();

while condition -> で行ったように、これには行の存在に関するチェックはありませんreader.existsLine()。これにより、行を読み取るようになり、読み取るwhile行がこれ以上ない場合、ここまたは の最後のステートメントが失敗する可能性があります。

forよくわかりませんが、ループ内の行を本当に読みたいのですか。はいの場合は、if 条件を次のようにラップします。

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