加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Checkstyle报告catch-exception参数的LocalFinalVariabl

发布时间:2020-12-15 04:25:14 所属栏目:Java 来源:网络整理
导读:我有一个奇怪的问题,我不确定这是两个耳朵之间的问题还是一个checkstyle问题. 运行checkstyle 6.2我们得到了两个,在jenkins和 eclipse这个错误: LocalFinalVariableNameCheck,Priority: Normal Name 'pEx' must match pattern '^l[A-Z][a-zA-Z0-9]*$'. 这是
我有一个奇怪的问题,我不确定这是两个耳朵之间的问题还是一个checkstyle问题.
运行checkstyle 6.2我们得到了两个,在jenkins和 eclipse这个错误:

LocalFinalVariableNameCheck,Priority: Normal 

Name 'pEx' must match pattern '^l[A-Z][a-zA-Z0-9]*$'.

这是代码

...
} catch (final XPathExpressionException pEx) {
   throw new ConfigurationException(pEx);
}

为什么checkstyle将catch块定义为局部var而不是param?

解决方法

正如@Dongqing指出的那样,pEx确实是一个局部变量,因此这里的检查适用.

但需要注意的是:此规则的默认值为^ [a-z] [a-zA-Z0-9] * $,如checkstyle documentation(工具的最新版本)中所指定.您可能已经定制的模式适合某些本地标准^ l [A-Z] [a-zA-Z0-9] * $.因此,在删除违规之前,您应该确保命名模式确实正常(为什么定义自定义规则,如果它不合适?).

如果你真的想摆脱这种违规行为,Che??ckstyle提供了各种方法来抑制警告.您可以:

>使用suppression XML file,允许您针对给定范围的行(甚至列范围)禁止特定文件上的特定规则.这样您就不必修改代码,但需要使用所有抑制来维护一个单独的文件.
>使用注释或注释通过在代码中添加注释或注释(例如@SuppressWarnings)来禁用警告,其中假阳性为.
这也必须配置.有关详细信息和示例,请参阅上面的链接.

编辑:此Checkstyle规则还允许您调整变量声明或catch子句的模式.以下配置应该适合您:

<module name="LocalVariableName">
    <property name="format" value="^[a-zA-Z0-9]*$"/>
    <property name="tokens" value="PARAMETER_DEF"/>
</module>

在这里,您只为catch子句中的违规指定了一个非常宽容的模式.变量声明不应受到影响,仍然需要检查原始模式.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读