SonarQube抱怨" 字符串不包含格式说明符".使用时org.slf4j.Logger
,特别是方法" public void debug(String msg)
".例如
log.info("message");
Run Code Online (Sandbox Code Playgroud)
它指的是这条规则:https://wiki.sei.cmu.edu/confluence/display/c/FIO47-C.+Use+valid+format+strings
但是,在此规则中,我们可以找到以下引用:
每个转换规范由%字符引入(按顺序)by
零个或多个标志(以任何顺序),它们修改转换规范的含义
是我错过了什么,还是这个规则没有得到很好的实施?有这方面的经验吗?
Mic*_*eam 34
这是SonarJava 5.1引入的已知问题.您可以安全地将此问题视为误报(FP)和/或忽略它.在处理JIRA票SONARJAVA-2633时已经修复了.
该修复程序已于2018年2月16日发布的SonarJava分析器5.1.1版本中提供(需要SonarQube LTS 6.7或更高版本).
SonarLint独立用户的更新
对于使用独立版本(未连接到任何SonarQube实例)的SonarLint用户,您可能仍会根据所使用的版本观察到该问题.如果您正在使用:
小智 9
不合规的代码示例
logger.info("Query: " , query);
LOGGER.info("Query: {0}", query);
// issue: String contains no format specifiers
LOGGER.info("Query: {0}", query);
// issue: String contains no format specifiers
Run Code Online (Sandbox Code Playgroud)
合规解决方案
LOGGER.info("Query: {}", query);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10314 次 |
最近记录: |