Null Pointer

0

Zastanawiam sie jak ugryzc nastepujaca rzecz. Mam zlecenia z priorytetem (0,1,2 lub 3), ktore tworzone sa randomowo. Jest szansa ze np. nie utworzy sie zadne zlecenie z priorytetem 0. Policzyc mam sredni czas zlecen z poszczegolnymi priorytetami. Nie wiem jak to uwzglednic w kodzie, bo jesli ktorys z priorytetow nie zostaje utworzony pojawia sie null pointer exception

  public double sredniCzasWykonaniaZlecenia(int priorytet) {
        
        double sredniCzas = sumaCzasow.get(priorytet).doubleValue() / iloscZlecen.get(priorytet).doubleValue();
        return sredniCzas;
    }
0

Wyifuj? Opakuj w monade?

0
stivens napisał(a):

Wyifuj? Opakuj w monade?

Jak wedlug Ciebie mam to wyifowac?

2

Jeżeli to jest mapa skorzystaj z metody getOrDefault().

0
random111 napisał(a):
stivens napisał(a):

Wyifuj? Opakuj w monade?

Jak wedlug Ciebie mam to wyifowac?

Jesli nie jest nullem to zrob cos z tym, w przeciwnym wypadku przerwij bo dereferencja nulla nie ma sensu

1

Można tak.

  public double sredniCzasWykonaniaZlecenia(int priorytet) {
        
        double sredniCzas = sumaCzasow.getOrDefault(priorytet, BigDecimal.ZERO).doubleValue() / iloscZlecen.getOrDefault(priorytet,BigDecimal.ONE).doubleValue();
        return sredniCzas;
    }

Jakkolwiek to nadal rak - bo jaki jest średni czas dla 0 zleceń? Wg mnie NullPointerException to była dobra odpowiedź, nie wiem co Ci się w niej nie podobało.

1 użytkowników online, w tym zalogowanych: 0, gości: 1