我有一个奇怪的问题,我不确定这是两个耳朵之间的问题还是一个checkstyle问题.
运行checkstyle 6.2我们得到了两个,在jenkins和 eclipse这个错误:
运行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] * $.因此,在删除违规之前,您应该确保命名模式确实正常(为什么定义自定义规则,如果它不合适?).
如果你真的想摆脱这种违规行为,Checkstyle提供了各种方法来抑制警告.您可以:
>使用suppression XML file,允许您针对给定范围的行(甚至列范围)禁止特定文件上的特定规则.这样您就不必修改代码,但需要使用所有抑制来维护一个单独的文件.
>使用注释或注释通过在代码中添加注释或注释(例如@SuppressWarnings)来禁用警告,其中假阳性为.
这也必须配置.有关详细信息和示例,请参阅上面的链接.
编辑:此Checkstyle规则还允许您调整变量声明或catch子句的模式.以下配置应该适合您:
<module name="LocalVariableName"> <property name="format" value="^[a-zA-Z0-9]*$"/> <property name="tokens" value="ParaMETER_DEF"/> </module>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。