Lets see this sample.
List <String> lst = getSome (); // returns null or a list
if (lst == null || lst.contains ("bla") == true)
{
// go on
That will work - the null-value is catched. But thats only the case because I know the if term is evaluated from left to right and it is not fully evaluated if the result gets unchangeable (1 || x is always 1). At least that is what I see if I let it run.
But it is not appearent at the very first glance and it can depend on behaviours behind the curtain and that may change sometime.
The question is: Is that good style in a language that would allow that?