La "expresión ternaria" x ? y : z
solo se puede utilizar para asignación condicional . Es decir, podrías hacer algo como:
String mood = inProfit() ? "happy" : "sad";
porque la expresión ternaria está devolviendo algo (de tipo String
en este ejemplo).
Realmente no está destinado a ser utilizado como un corto, en línea if-else
. En particular, no puede usarlo si las partes individuales no devuelven un valor o devuelven valores de tipos incompatibles. (Por lo tanto, si bien podría hacer esto si ambos métodos devuelven el mismo valor, no debe invocarlo solo para efectos secundarios).
Entonces, la forma correcta de hacer esto sería con un bloque if-else:
if (jXPanel6.isVisible()) {
jXPanel6.setVisible(true);
}
else {
jXPanel6.setVisible(false);
}
que por supuesto se puede acortar a
jXPanel6.setVisible(jXPanel6.isVisible());
Ambas últimas expresiones son, para mí, más legibles porque comunican más claramente lo que estás tratando de hacer. (Y, por cierto, ¿obtuviste tus condiciones al revés? De todos modos, parece que esto no es una operación, en lugar de una alternancia).
No mezcle el número bajo de caracteres con la legibilidad . El punto clave es lo que se comprende más fácilmente; y el uso indebido leve de las características del lenguaje es una forma definitiva de confundir a los lectores, o al menos hacer que se equivoquen mentalmente.