Java-PMD:如何仅在lambda表达式中忽略短变量名

我正在寻找一种解决方案,该解决方案允许我使用PMD检查短变量名称,同时将lambda排除在该规则之外.

主要原因是IntelliJ用单个字符esp自动命名常见的lamba变量.总是缩写的java.lang.Strings像

aListFullOfStrings.forEach(s -> s.replaceAll(" ", ""));

我更喜欢该缩写,但是我不想对所有的lambda添加抑制.我无法找到任何方法来调整我的PMD规则以优雅地解决此问题.

建议非常感激-我对它们的所有配置都不熟悉.

解决方法:

您可以利用基于xpath的PMD抑制功能.

在规则集XML上,只需为此特定规则配置属性,如下所示:

<rule ref="rulesets/java/naming.xml/ShortMethodName">
  <properties>
    <property name="violationSuppressXPath" value=".[ancestor::LambdaExpression]"/>
  </properties>
</rule>

尽管如此,作为PMD维护者,我认为这是更改PMD本身规则的合理案例,因此我添加了github.com/pmd/pmd/issues/720进行跟踪.

上一篇:07-ServletConfig类


下一篇:IDEA插件之PMD