Le ternaire "expression" x ? y : z
ne peut être utilisé pour le conditionnel d'attribution. Qui est, vous pourriez faire quelque chose comme:
String mood = inProfit() ? "happy" : "sad";
parce que le ternaire expression est de retour quelque chose (de type String
dans cet exemple).
Ce n'est pas vraiment destiné à être utilisé comme un court, en ligne, if-else
. En particulier, vous ne pouvez pas l'utiliser si les différentes parties ne retourne pas une valeur, ou valeur de retour de types incompatibles. (Ainsi, alors que vous pourriez le faire si les deux méthode est arrivé de retourner la même valeur, vous ne devriez pas l'invoquer pour effet secondaire seulement).
Donc la bonne façon de le faire, ce serait juste un if-else bloc:
if (jXPanel6.isVisible()) {
jXPanel6.setVisible(true);
}
else {
jXPanel6.setVisible(false);
}
ce qui bien sûr peut être raccourcie à
jXPanel6.setVisible(jXPanel6.isVisible());
Ces deux dernières expressions sont, pour moi, plus lisible en ce qu'ils ont de communiquer plus clairement ce que c'est que vous essayez de faire. (Et en passant, avez-vous des conditions dans le mauvais sens? Il semble que c'est un no-op de toute façon, plutôt que d'un interrupteur).
Ne mélangez pas faible nombre de caractères avec la lisibilité. Le point clé est ce qui est le plus facile à comprendre; et légèrement abuser des fonctionnalités du langage est une manière bien déterminée à confondre les lecteurs, ou au moins de leur faire faire un mental de double-take.