Is the following code the best way to check for null
for two times in a single line for initializaing a final
variable?
final String textValue = text != null ? text.getText() != null ? text.getText() : "" : "";
Is the following code the best way to check for null
for two times in a single line for initializaing a final
variable?
final String textValue = text != null ? text.getText() != null ? text.getText() : "" : "";
Well I'd probably use a single conditional with an &&
condition instead:
final String textValue = text != null && text.getText() != null ? text.getText()
: "";
If you find you need to do this in more than one place, you may well want to wrap it in a method:
// We don't know what the type of text is here... adjust appropriately.
public static String getTextOrDefault(TextBox text, String defaultValue)
{
return text != null && text.getText() != null ? text.getText()
: defaultValue;
}
Or adjusted to avoid calling getText()
more than once:
// We don't know what the type of text is here... adjust appropriately.
public static String getTextOrDefault(TextBox text, String defaultValue)
{
if (text == null)
{
return defaultValue;
}
String textValue = text.getText();
return textValue != null ? text.getText() : defaultValue;
}
Then you can simplify your variable declaration:
final String textValue = SomeHelper.getTextOrDefault(text, "");
Note that whether calling text.getText()
more than once is a problem depends on your scenario - in some cases it would be a bad idea, and you should restructure your code to avoid it. We can't tell for sure, but it's worth considering.
You can do this :
final String textValue = (text != null && text.getText() != null) ? text.getText() : "" ;
I am not sure what you mean by "best" (most programmer friendly? most efficient execution?)
But a programmer friendly alternative could be:
final String textValue = (text != null && text.getText() != null) ? text.getText() : "";
I assume this line is somewhere in a method. So this one will be more readable:
String value = "";
if (text != null && text.getText() != null) {
value = text.getText();
}
final String textValue = value;