"Трійковий вираз" x ? y : z
можна використовувати лише для умовного присвоєння . Тобто ви можете зробити щось на зразок:
String mood = inProfit() ? "happy" : "sad";
оскільки тернарний вираз щось повертає (типу String
в цьому прикладі).
Він насправді не призначений для використання як короткий, рядовий if-else
. Зокрема, ви не можете використовувати його, якщо окремі частини не повертають значення або повертають значення несумісних типів. (Отже, хоча ви могли б це зробити, якщо обидва методи повернули одне і те ж значення, ви не повинні викликати його лише для цілей побічного ефекту).
Тож правильний спосіб зробити це просто за допомогою блоку if-else:
if (jXPanel6.isVisible()) {
jXPanel6.setVisible(true);
}
else {
jXPanel6.setVisible(false);
}
що, звичайно, можна скоротити
jXPanel6.setVisible(jXPanel6.isVisible());
Обидва ці останні вислови для мене є більш читабельними, оскільки вони чіткіше повідомляють, що саме ви намагаєтесь зробити. (І, до речі, чи неправильно ви налаштували свої умови? Здається, це все одно не-операція, а не перемикання).
Не змішуйте низьку кількість символів із читабельністю . Ключовим моментом є те, що найбільш легко зрозуміти; і злегка зловживати мовними функціями - це певний спосіб заплутати читачів або, принаймні, змусити їх подумки подвоїти.