Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SonarQube规则的假阳性;squid:未使用的私有方法”;当从";调用私有方法时;“未使用”;公共方法?_Java_Sonarlint_Sonarlint Intellij - Fatal编程技术网

Java SonarQube规则的假阳性;squid:未使用的私有方法”;当从";调用私有方法时;“未使用”;公共方法?

Java SonarQube规则的假阳性;squid:未使用的私有方法”;当从";调用私有方法时;“未使用”;公共方法?,java,sonarlint,sonarlint-intellij,Java,Sonarlint,Sonarlint Intellij,我在同一个类中有一个公共方法foo()和一个私有方法bar() foo()是唯一的调用者,但它显然调用了bar(),但是IntelliJ显示了对bar()的方法声明的违反规则squid:UnusedPrivateMethod: 删除此未使用的私有“bar”方法 我的设置: IntelliJ IDEA 2016.3.5和Sonarint 2.8.0.1735 SonarLint已连接(连接模式)到SonarQube 5.6.5实例,该实例未识别这些违规行为(!) foo()有一个@Overrid

我在同一个类中有一个公共方法
foo()
和一个私有方法
bar()

foo()
是唯一的调用者,但它显然调用了
bar()
,但是IntelliJ显示了对
bar()
的方法声明的违反规则squid:UnusedPrivateMethod:

删除此未使用的私有“bar”方法

我的设置:

  • IntelliJ IDEA 2016.3.5和Sonarint 2.8.0.1735
  • SonarLint已连接(连接模式)到SonarQube 5.6.5实例,该实例未识别这些违规行为(!)
  • foo()
    有一个
    @Override
    声明。我不知道这是否有任何影响,但可能是有用的信息
这似乎是声纳中的一个bug。有人能确认吗?


更新:

您能提供一个最小的可复制示例吗?我怀疑这里缺少一些重要的细节。一个具体的例子可以澄清这一点。在任何情况下,当Java扫描器看不到某些已编译的类时,都可能发生这种误报。因此,请确保项目已编译,并验证出现此问题的类的
.class
文件及其引用的其他类是否都存在于文件系统中。我无法使用无arg方法重现此问题,但这里有一个屏幕截图:在您的屏幕截图中,我看不到
getString
的定义。如果此方法的返回类型不可见,则Java分析器无法确定
foo(getString(…)
是否引用了类的
foo
方法,或者其他某个
foo
方法。由于我看不到
getString
的来源,我怀疑代码没有编译。当代码未编译时,
.class
文件不存在,Java分析器无法找到它需要的字节码,这通常会导致这种误报。所以->编译你的项目!(并验证相关的
.class
文件是否存在)getString()是在超类活动(Android内置API)中定义的。我确实确保编译(ctrl+F9)以澄清,getString()是在android.content.Context中定义的,它是android.app.Activity的超级类之一