Java MessageFormat Null值

mar*_*h81 7 java messageformat

在Java MessageFormat中处理空值的最佳方法是什么

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

=> Value: null
Run Code Online (Sandbox Code Playgroud)

但实际上"价值:"会很好.

与日期相同

MessageFormat.format("Value: {0,date,medium}",null);

=> Value: null
Run Code Online (Sandbox Code Playgroud)

一个"价值:"会更加受到重视.

有没有办法做到这一点?我尝试过选择

{0,choice,null#|notnull#{0,date,dd.MM.yyyy – HH:mm:ss}}
Run Code Online (Sandbox Code Playgroud)

这会导致选择格式无效,检查"null"或"not null"是正确的吗?

Mak*_*oto 5

MessageFormat仅允许空值;也就是说,它将处理空参数。如果您希望在您正在使用的值为空时显示默认值而不是某些内容,您有两个选择:

你可以做一个三元......

MessageFormat.format("Value: {0}", null == value ? "" : value));
Run Code Online (Sandbox Code Playgroud)

...或者使用StringUtils.defaultIfBlank()commons-lang 代替:

MessageFormat.format("Value: {0}", StringUtils.defaultIfBlank(value, ""));
Run Code Online (Sandbox Code Playgroud)

  • 如果我需要和约会对象一起工作怎么办?类似于: `MessageFormat.format("Value: {0,date,dd/MM/yyyy}", aDate);` ? (2认同)