Java MessageFormat Null Values

java, messageformat

Solution

`MessageFormat` is only null-tolerant; that is, it will handle a null argument. If you want to have a default value appear instead of something if the value you're working with is null, you have two options:

You can either do a ternary...

MessageFormat.format("Value: {0}", null == value ? "" : value));

...or use `StringUtils.defaultIfBlank()` from commons-lang instead:

MessageFormat.format("Value: {0}", StringUtils.defaultIfBlank(value, ""));

Problem

What is the best way to treat null values in Java MessageFormat ``` MessageFormat.format("Value: {0}",null); => Value: null ``` but actually a "Value: " would be nice. Same with date ``` MessageFormat.format("Value: {0,date,medium}",null); => Value: null ``` a "Value: " whould be much more appreciated. Is there any way to do this? I tried choice ``` {0,choice,null#|notnull#{0,date,dd.MM.yyyy – HH:mm:ss}} ``` which results in invalid choice format, what is correct to check for "null" or "not null"?

Original source