报告用作格式字符串参数的非常量字符串连接。

虽然偶尔是有意为之,但这通常是误用格式化方法,连接的字符串中使用的变量包含 % 等特殊字符时,甚至可能导致安全问题。

此外,有时这可能是在本应键入 , 时键入了 + 而错误连接字符串格式参数所致。

示例:


  static String formatGreeting(String userName) {
    return String.format("Hello, " + userName);
  }

这里的 userName 将解释为格式字符串的一部分,这可能导致 IllegalFormatException (例如,如果 userName"%") 或使用大量内存 (例如,如果 userName"%2000000000%")。 该调用可能应替换为 String.format("Hello, %s", userName);

该检查将检查对 java.util.Formatterjava.lang.Stringjava.io.PrintWriterjava.io.PrintStream 的格式化方法的调用。