首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否禁用特定代码行的特定Checkstyle规则?

是否禁用特定代码行的特定Checkstyle规则?
EN

Stack Overflow用户
提问于 2010-10-26 19:32:40
回答 7查看 218.6K关注 0票数 203

我在我的项目中配置了一个Checkstyle验证规则,禁止定义超过3个输入参数的类方法。该规则适用于我的类,但有时我必须扩展第三方类,而这些类并不遵守这个特定的规则。

有没有可能指示Checkstyle某个方法应该被静默忽略?

顺便说一句,我最终得到了自己的Checkstyle包装器:qulice.com (参见Strict Control of Java Code Quality)

EN

回答 7

Stack Overflow用户

发布于 2012-02-18 05:51:04

同样有效的是SuppressWithNearbyCommentFilter,它使用单独的注释来抑制审计事件。

例如

代码语言:javascript
复制
// CHECKSTYLE IGNORE check FOR NEXT 1 LINES
public void onClick(View view) { ... }

要配置筛选器,以便CHECKSTYLE忽略对下一个变量行的检查,以避免触发对当前行和下一个变量行(总共为var+1行)的给定检查的任何审核:

代码语言:javascript
复制
<module name="SuppressWithNearbyCommentFilter">
    <property name="commentFormat" value="CHECKSTYLE IGNORE (\w+) FOR NEXT (\d+) LINES"/>
    <property name="checkFormat" value="$1"/>
    <property name="influenceFormat" value="$2"/>
</module>

http://checkstyle.sourceforge.net/config.html

票数 34
EN

Stack Overflow用户

发布于 2016-04-22 20:22:08

每一个提到SuppressWarningsFilter的答案都缺少一个重要的细节。如果在checkstyle-config.xml中定义了全小写id,则只能使用全小写id。如果不是,则必须使用原始模块名称。

例如,如果在我的checkstyle-config.xml中有:

代码语言:javascript
复制
<module name="NoWhitespaceBefore"/>

我不能使用:

代码语言:javascript
复制
@SuppressWarnings({"nowhitespacebefore"})

但是,我必须使用:

代码语言:javascript
复制
@SuppressWarnings({"NoWhitespaceBefore"})

为了使第一个语法起作用,checkstyle-config.xml应该具有:

代码语言:javascript
复制
<module name="NoWhitespaceBefore">
  <property name="id" value="nowhitespacebefore"/>
</module>

这就是对我有效的方法,至少在CheckStyle版本6.17中是这样。

票数 5
EN

Stack Overflow用户

发布于 2016-11-03 22:42:37

我对上面的答案有困难,可能是因为我将checkStyle警告设置为错误。起作用的是SuppressionFilter:http://checkstyle.sourceforge.net/config_filters.html#SuppressionFilter

这样做的缺点是,行范围存储在单独的suppresssions.xml文件中,因此不熟悉的开发人员可能不会立即建立连接。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4023185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档