„Wyrażenie trójskładnikowe” x ? y : zmoże być używane tylko do przypisania warunkowego . Oznacza to, że możesz zrobić coś takiego:
String mood = inProfit() ? "happy" : "sad";
ponieważ wyrażenie trójargumentowe zwraca coś (typu Stringw tym przykładzie).
Tak naprawdę nie ma być używany jako krótki, liniowy if-else. W szczególności nie można go użyć, jeśli poszczególne części nie zwracają wartości lub zwracają wartości niezgodnych typów. (Więc chociaż możesz to zrobić, jeśli obie metody zwracają tę samą wartość, nie powinieneś wywoływać jej tylko w celu uzyskania efektu ubocznego).
Zatem właściwym sposobem na zrobienie tego byłoby użycie bloku if-else:
if (jXPanel6.isVisible()) {
jXPanel6.setVisible(true);
}
else {
jXPanel6.setVisible(false);
}
który oczywiście można skrócić do
jXPanel6.setVisible(jXPanel6.isVisible());
Oba te ostatnie wyrażenia są dla mnie bardziej czytelne, ponieważ wyraźniej wyrażają to, co próbujesz zrobić. (Nawiasem mówiąc, czy twoje warunki były niewłaściwe? Wygląda na to, że to nie jest operacja, a nie przełącznik).
Nie myl małej liczby znaków z czytelnością . Kluczową kwestią jest to, co jest najłatwiejsze do zrozumienia; a lekkie nadużywanie cech językowych jest zdecydowanym sposobem na zdezorientowanie czytelników lub przynajmniej zmusić ich do zastanowienia się.