In some languages (like java) yoda-conditions also give you null handling:
if (variable.equals("value")) ...
throws an exception if variable is null
if ("value".equals(variable)) ...
will work correctly
if ((variable != null) && variable.equals("value")) ...
is more work and potentially error-prone.
TIL. That's a good usage of Yoda conditions.
Can you really call it a "Yoda condition"?
Yoda conditions have been born to avoid hard-to-catch mistakes, like an assignment in a condition statement. If variable is null in your first example you catch it immediately, because it throws a NullPointerException as you mentioned.
So it doesn't save you from a mistake; it saves you from checking if the value is null or not. And honestly I'm not sure it's what I'd want: if I expect a string there, why am I dealing with null?
Now there's Objects.equals(variable, "value") as well... although it looks sloppy at first it's very useful for lambdas
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.