MessageFormat.format()
的调用实参的非常量字符串串联。
虽然偶尔是有意为之,但这通常是误用格式化方法,串联的字符串中包含 {
等特殊字符时,甚至可能导致异常。
此外,有时这可能是在本应键入 ,
时键入了 +
而错误串联字符串格式实参所致。
示例:
String formatGreeting(String userName, int balance) {
return MessageFormat.format("Hello, " + userName + "! Your balance is {0}.", balance);
}
这里的 userName
解读为格式字符串的一部分,这可能导致 IllegalArgumentException
(例如,如果 userName
为 "{"
)。
此调用或许应当替换为 MessageFormat.format("Hello, {0}! Your balance is {1}.", userName, balance)
。