- Shipped
- 8 de setembro de 2026 às 14:58 UTC
- Author
- Kamo
- Commit
- 4d9a71f
Pressionando Nova tabela respondeu 500: NullPointerException: Não é possível invocar "java.lang.Integer.intValue()" porque o O valor de retorno de HoldemTable.getButtonSeat() é nulo - Não. `HoldemHand. button Asset` é um `int` primitivo; `HoldemTable.botton Assentos nullable `Integer', porque uma tabela não tem nenhum botão até que dê uma mão. Escrito como `hand != null ? hand.getButtonSeat(): table.getButtonSeat(), JLS 15.25 aplica a promoção numérica binária para os dois ramos e desboxes a expressão chama `.intValue()` na nula da tabela antes que o resultado seja sempre atribuído. Declarar a variável 'Integer' não ajuda: o desboxing acontece dentro da expressão condicional, e a atribuição só re-boxes o que sobrevive. Um se/outro agora, com um comentário dizendo porquê, porque o ternário é exatamente o "Simplificação" alguém iria tentar. Esta foi a primeira coisa que alguém fez com o recurso, e foi enviado. Cada teste existente teve uma mão em andamento; nenhum construiu uma vista para o único estado Uma mesa nova em folha. `HoldemTableViewTest` constrói três deles — vazio, sentado-mas-não-negociar, eo resumo lobby - e eu confirmei todos os três reproduzir a produção NPE verbatim contra o ternário antes de restaurar a correção. Ele também fixa duas coisas que o botão nulo não deve ser permitido inventar: nenhum revendedor e não há marcadores cegos em uma tabela que não tenha negociado, e nenhuma carteira ida e volta para Uma fila no átrio.