[英]Checkstyle rule to avoid not condition
我正在使用checkstyles,我想定义规则,例如在有人使用if ... else ...
块下not
条件的情况下显示警告的if ... else ...
。 例如:
if (!employeeNotExist) {
// code
} else {
// code
}
原因是最好只具有积极的可读性条件
是否在checkstyle下为此提供了现成的模块,或者为此需要编写一些自定义checkstyle规则?
我不认为此检查是在checkstyle本身中定义的,但是您始终可以使用扩展插件之一,即https://github.com/sevntu-checkstyle/sevntu.checkstyle ,您可以在此处找到所需的内容: 这里 。
Checkstyle无法开箱即用。 因此,如果不适合使用第三方库,则必须编写自定义检查 。 如果可以的话:这将是一个非常简单的自定义检查案例。
开箱即用最好的方法是配置DescendantToken检查(在Eclipse-CS中工作; DescendantToken检查是复杂的低级检查,需要了解AST才能配置,请参阅链接的文档以获取更多信息) :
<module name="DescendantToken">
<property name="tokens" value="LITERAL_IF"/>
<property name="limitedTokens" value="LNOT"/>
<property name="minimumDepth" value="2"/>
<property name="maximumDepth" value="2"/>
<property name="maximumNumber" value="0"/>
<property name="maximumMessage" value="Consider changing this to a
positive condition for better readability."/>
</module>
这种方法有些粗糙,因为它不会检测是否存在else
块,并且还会标记诸如if (!map.isEmpty())
类的方法调用。 但这涵盖了您的if (!employeeNotExist)
案例。 它还将标记条件,如!(a || b)
,但可以将其重写为!a && !b
。
因此,总的来说,它远非完美,但这是开箱即用的Checkstyle最接近的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.