I was reviewing some code and I came across this:
public static doSomething(String myString, String myString2) {
//Stuff
}
public static doAnotherThing(String myString) {
return doSomething(myString = myString != null ? myString.toLowerCase(): myString, null)
}
How is this working exactly?, I know the .toLowerCase resulting string is assigned to myString (yes I know bad practice since you are not supposed to reassign method parameters in fact they should be final), but I am not quite sure how does the method always receives the 2 parameters it needs.
I know how it works when myString is null or at least I think I do, since the ternary has myString, null, but I am not quite sure why it would go there when myString is not null?.
Parenthesis to the rescue!
doSomething(myString = ( ( myString != null ) ? myString.toLowerCase() : myString ), null)
To understand this, you need to know two things:
Its just a more complicated version of:
public static doAnotherThing(String myString)
{
myString = myString != null ? myString.toLowerCase(): myString;
return doSomething(myString, null)
}
or even
public static doAnotherThing(String myString)
{
String s = myString;
if (myString != null)
s = myString.toLowerCase();
return doSomething(s, null)
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With