Java nu incrementare corect raport Hărți

voturi
2

Eu sunt în prezent încercarea de a scrie un utilitar de eroare de logare pentru un program de lucru în care automatizează sarcinile efectuate de alte produse în etape multiple (E Seleniu, dar nu cred că e relevant).

Atunci când un pas eșuează pentru o anumită sarcină, vreau să identifice pas, și de câte ori eșuează pe parcursul unei anumite sarcini (mai multe etape sunt generice și repetate, cum ar fi „Trimite un mesaj X“, „Update X Jurnal“, etc.)

Problema cu care mă confrunt este că, atunci când contează o eroare, nu este corect incrementare. Dacă un pas eșuează o dată, aceasta se va ridica ca un număr de 1. Dacă un pas eșuează de două ori, numărul va rămâne pe 1. Dacă eșuează de 3 ori numărul de va crește apoi la două, în cazul în care de 4 ori va crește la 3, și așa mai departe.

Acest lucru înseamnă că , dacă un pas eșuează mai mult de o dată numărătoarea mea este întotdeauna în afara de unul.
Codul Sunt folosind pentru acest post special , este:

int count = map.containsKey(word) ? map.get(word) : 0;
if(word.startsWith(api) && line.contains(date.toString())){
    if (!map.containsKey(word)) {
        map.put(word, 1);
    } else {
        map.put(word, count + 1);
    }
}

Orice indicii la toate ar fi apreciat foarte mult. Cu respect, Reg.

Întrebat 02/06/2015 la 08:11
de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
1

Ar trebui să încercați să schimbați-l

if (!map.containsKey(word)) {
        map.put(word, 1);
      } else {
        map.put(word, map.get(word) + 1);
      }

Variabila countValoarea poate fi depășită în timpul executării. Acest tip de probleme sunt cele mai bune potrivite pentru depanare. Încercați să urmăriți valoarea countpas cu pas, care va ajuta să țintui această problemă.

Publicat 02/06/2015 la 08:16
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more