Früher war es schwierig, den ternären Operator zu analysieren, aber seitdem habe ich festgestellt, dass es einige Stellen gibt, an denen er sehr nützlich ist. Dies ist in der Regel keine Anwendungslogik, sondern eine Protokollierung.
Zum Beispiel:
log.info( "Object foo is " + ( foo.isEnabled() ? "" : "not " ) + "enabled" );
Für mich ist das viel ordentlicher als beide
if ( foo.isEnabled() )
log.info( "Foo is enabled" );
else
log.info( "Foo is not enabled" );
Oder
log.info( "Foo is enabled : " + foo.isEnabled() );
Zusammenfassend ist es eine Frage, wo es verwendet wird und dafür.
Was das Bit angeht, habe ich immer noch Probleme damit, aber das liegt daran, dass ich es gewohnt bin, auf einem hohen Abstraktionsniveau zu arbeiten, wie andere Kommentatoren vorgeschlagen haben. Wenn ich irgendwo im Code auf etwas stoße, das jemand als "effizient" bezeichnet, wird die Zeit, die verschwendet wird, während ich es herausfinde, die Vorteile zunichte machen.