la "expresión ternario" x ? y : z
sólo se puede utilizar para condicional asignación. Es decir, se podría hacer algo como:
String mood = inProfit() ? "happy" : "sad";
porque la expresión ternaria está volviendo algo (de tipo String
en este ejemplo).
No está destinado a ser usado como un corto, en línea if-else
. En particular, no puede usarlo si las partes individuales no devuelven un valor, o devolver valores de tipos incompatibles. (Entonces, si puede hacer esto si ambos métodos devuelven el mismo valor, no debería llamarlo para efectos secundarios solamente).
Así que la forma correcta de hacer esto sería sólo con un bloque else if-:
if (jXPanel6.isVisible()) {
jXPanel6.setVisible(true);
}
else {
jXPanel6.setVisible(false);
}
que por supuesto puede ser acortado a
jXPanel6.setVisible(jXPanel6.isVisible());
Ambos de estas últimas expresiones son, por yo, más legible porque ellos comunican más claramente lo que estás tratando de hacer. (Y por cierto, ¿obtuviste tus condiciones al revés? Parece que de todos modos no es una operación, en lugar de una palanca).
No mezcle recuento bajo carácter con legibilidad. El punto clave es lo que se entiende más fácilmente; y usar un poco de las características del lenguaje es una manera definitiva de confundir a los lectores, o al menos hacer que hagan una doble toma mental.
Aunque mautetto ha proporcionado una mejor manera de escribir esto, esta estructura se suele llamar operador ternario. (En caso de que se lo pregunte;)) –