如何使用带有布尔值的 Java MessageFormat 选项?

How do I use a Java MessageFormat choice with a boolean?

假设我想说 "Your order qualifies for a discount" 或 "Your order does not qualify for a discount"。

我假设我可以在 MessageFormat 中使用带有布尔值的 choice,例如

"Your order {0,choice,false#does not qualify|true#qualifies} for a discount"

但是我得到了错误

Choice Pattern incorrect: false#does not qualify|true#qualifies

当然,还有许多其他方法可以实现此目的,但是 MessageFormat 选择是否不支持布尔值?

不幸的是,

ChoiceFormat 不适用于 boolean,正如其他人提到的那样。似乎至少有一个旧的 JDK 增强请求支持此功能,但被拒绝了:

https://bugs.openjdk.java.net/browse/JDK-4682566

因此,您可以使用变通方法,例如先将布尔值转换为数字。