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)
。