Nouveau tableau 500'd sur un ternaire qui désaméait un bouton nul

FixMediaService
Shipped
8 septembre 2026 à 14:58 UTC
Author
Kamo
Commit
4d9a71f

Pressing New table répond à 500: NullPointerException: Impossible d'invoquer "java.lang.Integer.intValue()" parce que le valeur de retour de HoldemTable.getButtonSeat() est nulle à "HoldemHand.buttonSeat" est un "int" primitif; "HoldemTable.buttonSeat" est un "HoldemTable.button" est un "HoldemTable.button" nullable, parce qu'une table n'a pas de bouton jusqu'à ce qu'elle traite une main. Écrit - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . applique une promotion numérique binaire aux deux branches et des boîtes les deux - de sorte que l'expression appelle '.intValue()' sur la table''s null before the result' ever affectés. Déclarer la variable «Ensemble» n'aide pas: le déballage se produit à l'intérieur de l'expression conditionnelle, et l'affectation ne re-boxe que ce qui survit. Un si/autree maintenant, avec un commentaire disant pourquoi, parce que le ternaire est exactement le "simplification" pour lequel quelqu'un parviendrait. C'était la première chose que quelqu'un faisait avec la fonctionnalité, et elle a été expédiée. Chaque l'essai actuel avait un rôle en cours; il n'y avait pas une vue pour le seul État. Une toute nouvelle table est toujours en place. "HoldemTableViewTest" construit trois d'entre eux - vides, assis-mais-non-dealt, et le résumé du lobby - et j'ai confirmé tous les trois reproductions la production NPE contre le sternaire avant la restitution de la solution. Il épingle aussi deux choses que le bouton nul ne doit PAS être autorisé à inventer: pas de revendeur et pas de marqueurs aveugles sur une table qui n'a pas distribué, et pas de porte-monnaie aller-retour pour une rangée de lobby.

All changes

Comme ce que tu vois expédier ?

Chacune de ces mises à jour atterrit automatiquement dans votre espace de travail. Commencez gratuitement et regardez-le grandir semaine après semaine.

Commencez gratuitement pour toujoursPrix de visualisation