Я почти никогда не использую троичный оператор, потому что всякий раз, когда я ДЕЛАЮ его, он всегда заставляет меня думать намного больше, чем позже, когда я пытаюсь его поддерживать.
Мне нравится избегать многословия, но когда это значительно облегчает восприятие кода, я остановлюсь на многословности.
Рассматривать:
String name = firstName;
if (middleName != null) {
name += " " + middleName;
}
name += " " + lastName;
Это немного многословно, но я нахожу это более читабельным, чем:
String name = firstName + (middleName == null ? "" : " " + middleName)
+ " " + lastName;
или:
String name = firstName;
name += (middleName == null ? "" : " " + middleName);
name += " " + lastName;
Кажется, он просто сжимает слишком много информации в слишком мало места, не давая понять, что происходит. Каждый раз, когда я вижу, что используется троичный оператор, я всегда находил альтернативу, которая казалась намного легче читаемой ... опять же, это чрезвычайно субъективное мнение, поэтому, если вы и ваши коллеги находите троичный очень читабельным, сделайте это.