Java 如何删除lambda表达式的变量?

Java 如何删除lambda表达式的变量?,java,lambda,Java,Lambda,sonarQube的代码片段建议删除lambda表达式中未使用的局部变量。我仍然不讨论Java 8中的新功能,尤其是lambda表达式。如何替换这些未使用的变量?IntelliJ没有给我任何建议 我的代码 validation.stream().filter(aValidation -> aValidation.getSpec() != null).forEach(aValidation -> { if (aValidation.getArqu

sonarQube的代码片段建议删除
lambda表达式中未使用的局部变量。我仍然不讨论Java 8中的新功能,尤其是lambda表达式。
如何替换这些未使用的变量?IntelliJ没有给我任何建议

我的代码

    validation.stream().filter(aValidation -> aValidation.getSpec() != null).forEach(aValidation -> {
                if (aValidation.getArquivo() != null) {
                    String nomeOriginal = aValidation.getSpec().get("peca_nome").toString();
                    itemsValidacao.put(nomeOriginal, aValidation.getResultadoConsolidado());
                } else {
                    if (aValidation.getSpec().get("peca_nome") != null) {
                        String nomeOriginal = aValidation.getSpec().get("peca_nome").toString();
                        itemsValidacao.put(nomeOriginal, aValidation.getResultadoConsolidado());
                    }
                }
            });


 chaves.stream().filter(chave -> chave != null).forEach(chave -> {
            String value = cabecalho.get(chave);
            try {
                String novaChave = mapper.getChave(value.trim().toLowerCase());
                if (!novaChave.isEmpty()) {
                    cabecalhoNormalizado.put(novaChave, chave);
                }
            } catch (NullPointerException e) {
                Log.info(this, "Erro ao obter chave: " + value, e);
            }
        });
声纳qube
删除此未使用的“chave”局部变量

删除此未使用的“aValidation”局部变量

在该代码段中,不要删除它们。它们被用于
String nomeOriginal=aValidation.getSpec().get(“peca_nome”).toString()
cabecalhoNormalizado.put(novaChave,chave)
。尝试删除它们几乎肯定会破坏程序,因此我不确定IntelliJ为什么认为它们“未使用”。

在我看来,这就像sonarQube中的一个bug,因为这些变量肯定在源代码中使用过。lambdas生成的字节码中可能有一些未使用的东西,但这是Java8的一个小故障,工具应该能够识别出来。或者可能是完全错误的。无论如何,请看他们的问题列表。@Lrrr我不知道哪段代码应该删除此变量,IntelliJ不会指责任何未使用的变量。@Danielamarkesdemorais我犯了一个错误,对不起:)您能显示Sonar发出的确切信息以及更大的代码片段吗?我的意思是,SonarQube可能引用了一些lambda表达式中未使用的变量,例如带有null getSpec()值的aValidation对象我最近在IDEA 14.1.3中使用嵌套lambda时遇到了一些不稳定的红色扭曲,但代码编译和运行良好。我认为各种lambda解析器中都有一些bug。