KamoCRM

Nowy stół 500 na tearnie, który nie zapakował przycisku zerowego

FixMediaService
Przesyłane
8 września 2026 14:58 UTC
Autor
Kamo
Zgłoszenie
4d9a71f

Naciśnięcie nowej tabeli odpowiedziało 500: NullPointerException: Nie można wywołać "java.lang.Integer.intValue()" z powodu Wartość zwracana HoldemTable.getButtonSeat() jest nieważna W :-) "HoldemHand.buttonSeat" jest prymitywnym "int"; "HoldemTable.buttonSeat" jest a Znimowana „Integer”, ponieważ stół nie ma przycisku, dopóki nie powie. Napisane as: . . ? nu! nu ? hand.getButeat() : table.getButtonSeat(), JLS 15.25 Stosuje binarną promocję numeryczną do dwóch gałęzi i rozpakowych obu - więc Wyrażenie wywołań ".intValue()" na null tabeli przed tym, jak wynik jest kiedykolwiek Przydzielono przydzielone. Ogłosić zmienną „Integer” nie pomaga: unboxing się odbywa Wewnątrz wyrażenia warunkowego i przydział tylko re-boxes to, co przetrwa. A if/ele teraz, z komentarzem mówiącym dlaczego, ponieważ to, co jest dokładnie tym, co jest "Uproszczenie" kogoś sięgnięcie. To była pierwsza rzecz, którą ktoś zrobił z tą funkcją i został wysłany. Każdy Istniejący test miał w toku; nie jeden zbudował widok dla jedynego państwa Zupełnie nowy stół jest zawsze w środku. "HoldemTableTest" buduje trzy z nich - puste, Usiadłe, ale nie-dealt, i podsumowanie lobby – i potwierdziłem wszystkie trzy reprodukcję Produkcja NPE dosłownie przeciwko ternikowi przed przywróceniem poprawki. Przypina również dwie rzeczy, których nie wolno wynaleźć przycisku null: no handlarze I brak ślepych znaczników na stole, który nie został rozdany, i bez portfela w obie strony Wiosna w holu.

Wszystkie zmiany

Jak to, co widzisz żeglugę?

Wszystko to pojawia się w twoim miejscu pracy na własną rękę. Zacznij od bezpłatnego planu i przeczytaj tę stronę ponownie w miesiącu.

Zacząć na zawszeZobacz ceny