报告用作格式字符串实参的非常量字符串串联。

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

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

示例:


  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 的格式化方法的调用。