Checkstyle, если утверждение правило - PullRequest
1 голос
/ 25 июня 2019

Есть ли какое-либо правило, которое я могу использовать для ограничения следующих if утверждений:

if ( null == name ) {
...
}

Как правило, null всегда должно быть справа от утверждения, например,

if ( name == null ) {
...
}

1 Ответ

2 голосов
/ 26 июня 2019

В Sevntu есть пользовательская проверка AvoidConstantAsFirstOperandInConditionCheck, которая делает то, что вы хотите.

$ cat TestClass.java
public class TestClass {
    void method() {
if ( null == name ) {} // violation
if ( name == null ) {} // OK
    }
}

$ cat TestConfig.xml
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
          "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
          "https://checkstyle.org/dtds/configuration_1_3.dtd">

<module name="Checker">
    <property name="charset" value="UTF-8"/>

    <module name="TreeWalker">
<module name="com.github.sevntu.checkstyle.checks.coding.AvoidConstantAsFirstOperandInConditionCheck" />
    </module>
</module>

$ java -jar checkstyle-8.9-sevntu-1.29.0-all.jar -c TestConfig.xml TestClass.java
Starting audit...
[ERROR] TestClass.java:3: Constant have to be second operand of '=='. [AvoidConstantAsFirstOperandInCondition]
Audit done.
Checkstyle ends with 1 errors.
...