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

时间:2015-05-26 11:51:23

标签: java lambda

代码段sonarQube建议删除lambda expression中未使用的局部变量。我仍然不处理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);
            }
        });

sonarQube
  删除这个未使用的“chave”局部变量。
  删除此未使用的“aValidation”局部变量。

1 个答案:

答案 0 :(得分:3)

在该代码段中,请勿删除它们。它们用于String nomeOriginal = aValidation.getSpec().get("peca_nome").toString()cabecalhoNormalizado.put(novaChave, chave)等地方。试图删除它们几乎肯定会破坏程序,所以我不确定为什么IntelliJ认为它们是未被使用的。"