- 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.