Java Findbugs未经检查/未经确认的来自生成器样式链接函数调用的强制转换

Java Findbugs未经检查/未经确认的来自生成器样式链接函数调用的强制转换,java,sonarqube,findbugs,spotbugs,Java,Sonarqube,Findbugs,Spotbugs,FindBugs报告了一个未经检查/未经确认的强制转换问题,其and()行位于以下用于配置Spring安全性的构建器模式代码中 public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { auth .inMemoryAuthentication() .withUser("admin").password("secret").roles("ADMI

FindBugs报告了一个未经检查/未经确认的强制转换问题,其and()行位于以下用于配置Spring安全性的构建器模式代码中

public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
    auth
        .inMemoryAuthentication()
            .withUser("admin").password("secret").roles("ADMIN")
                .and()
            .withUser("user").password("secret").roles("USER");
}
代码运行良好,如何安抚FindBugs?

编辑:

正如@h3xStream(在下面的注释中)所建议的,如果您在使用任何代码分析工具时遇到误报,最好的解决方案是将该工具配置为忽略误报,并采取措施纠正代码分析工具。当然,这假设它确实是一个误报,并且您的代码(以其当前形式)是正确的,最好保持不变

在紧急情况下,您可以重写代码以防止触发误报。这就是我在这个特殊情况下所做的,尽管这实际上只是一个解决办法:


通过将代码更新为以下内容,我能够阻止触发假阳性:

public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
    InMemoryUserDetailsManagerConfigurer<AuthenticationManagerBuilder> conf 
            = auth.inMemoryAuthentication();
    conf.withUser("admin").password("secret").roles("ADMIN");
    conf.withUser("user").password("secret").roles("USER");
}
public void configureGlobal(AuthenticationManagerBuilder auth)引发异常{
InMemoryUserDetailsManager配置器配置文件
=auth.inMemoryAuthentication();
conf.withUser(“admin”).密码(“secret”).角色(“admin”);
conf.withUser(“用户”)。密码(“机密”)。角色(“用户”);
}

由于我不再将函数链接在一起,返回值变得无关紧要,假阳性不再被触发。

我不是对你的建议投反对票的人。我建议使用注释并向@h3xStream报告误报,这是有意义的。我同意我的解决方案只是一种变通方法——我不知道注释。如果你把你的解决方案作为答案,我会接受的。谢谢您的帮助。您可以将其添加到您的答案中作为备选答案。没有压力。我只是在添加我的沙粒。