繁体   English   中英

SonarQube静态方法中的假阳性“应删除未使用的私有方法”

[英]SonarQube false-positive “unused private methods should be removed” in static method

示例代码:

public static String foo(){
 return bar();
}

private static String bar(){
 return "";
}

SonarQube将bar()函数标记为未使用,但是SonarLint(IntelliJ,版本2.7.1.1640)可以正常工作。 我已经安装了最新版本的SonarQube(6.2)和最新版本的Java插件(4.5.0.8398),但是仍然存在此问题-我认为此问题已解决? 这是某种回归错误吗? 谢谢你的帮助。

更新:

上面的例子太琐碎了,我设法指定问题:它看起来像是将原始参数传递给函数的问题,例如,将其标记为未使用:

public static String foo( SomeClass a ) {
    return bar( a.getChar() );
  }

  private static String bar( char a ) {
    return String.valueOf( a );
  }

如果我将硬编码的值传递给bar(例如bar('a')),则一切正常(甚至当我传递类似bar(“ string” .charAt(0))的东西时)。 SomeClass.getChar()返回'char',因此装箱原语不是问题。

解决方案:正如@Michael-SonarSource团队建议的那样,依赖项字节码存在问题。 我禁用了teamcity Sonar跑步程序插件,现在通过Gradle插件运行声纳。

很多时候声纳服务器和声纳皮棉同步存在问题,这与单个问题无关,它也在其他问题中被复制,例如重复代码。请参考声纳服务器并尝试解决

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM