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

FixMediaService
Shipped
8 września 2026 14:58 UTC
Author
Kamo
Commit
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.

All changes

Jak to, co widzisz żeglugę?

Każda z tych aktualizacji automatycznie ląduje w miejscu pracy. Zacznij za darmo i obserwuj, jak rośnie tydzień po tygodniu.

Start Free ForeverZobacz ceny