我正在使用CheckStyle检查花括号的位置,通常希望强制左花括号位于行尾,并在其后面缩进。
if (something_is_true) {
...
但是,在日志语句的非常特殊的情况下,我想保持紧凑,我想允许
if (log.isDebugEnabled()) { log.debug("my logging statement."); }
记录器的名称可能会更改,但通常该行将包含“isDebugEn的”。我不想使用SuppressWarnings或以其他方式在调试行周围添加额外的行-我希望它们不干扰视图和代码流程。
是否有办法通过checkstyle配置文件对匹配给定模式的行抑制警告?
谢谢。
我认为这是如何为特定代码行禁用特定检查样式规则的重复?。
事实上,你有3个选择:
@SuppressWarning("checkstyle:规则")
checkstyle-抑制. xml
@checkstyle规则(N行)
java注释(也适用于javadoc)这些选项完全取决于您的checkstyle插件版本,因此最好从已经提出的问题开始研究:
回答了我自己的问题。我在我的checkstyle配置文件中添加了一个抑制文件,其中抑制文件包含以下内容:
<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC
"-//Checkstyle//DTD SuppressionXpathFilter Experimental Configuration 1.2//EN"
"https://checkstyle.org/dtds/suppressions_1_2_xpath_experimental.dtd">
<suppressions>
<suppress-xpath checks="LeftCurly"
query="//LITERAL_IF[.//METHOD_CALL/DOT/IDENT[@text='isDebugEnabled']]/SLIST"/>
</suppressions>
这将查找包含对isDebugEn的调用的引用的所有if语句,并匹配以下以左大括号开头的“语句列表”。