Checkstyle Javaルール

CheckstyleのJavaルールについて1つずつまとめます

DefaultComesLast

CheckStyle公式ドキュメント

検証環境

Checkstyleバージョン:10.3.3
Javaバージョン:17


チェック概要

チェック追加バージョン
Checkstyle 3.4

switch文の中で default がすべてのcaseの後にあることをチェックする。
Javaではswitch文の中のどこでもdefaultが可能だが、最後のcaseの後に来る方が可読性が高くなる。

プロパティ

プロパティ デフォルト値 説明 追加バージョン
skipIfLastAndSharedWithCase boolean false defaultが最後でない場合に、caseと一緒にいるdefaultを許可するかどうか 7.7

設定+チェック実行結果

プロパティ設定なし

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="DefaultComesLast"/>
    </module>
</module>

チェック実行例

// OK
switch (i) {
    case 1:
        break;
    case 2:
        break;
    default:
        break;
}

// NG default の後ろにも case が存在している
switch (i) {
    case 1:
        break;
    default:
        break;
    case 2:
        break;
}

// NG default の後ろにも case が存在している
switch (i) {
    case 1:
        break;
    case 2:
    default:
        break;
    case 3:
        break;
}

プロパティ設定あり

skipIfLastAndSharedWithCase

trueを設定した場合、defaultが最後でない場合に、caseと一緒にいるdefaultを許可する(デフォルト:false)

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="DeclarationOrder">
            <property name="skipIfLastAndSharedWithCase" value="true"/>
        </module>
    </module>
</module>

チェック実行例

// OK
switch (i) {
    case 1:
        break;
    case 2:
        break;
    default:
        break;
}

// NG default の後ろにも case が存在している
switch (i) {
    case 1:
        break;
    default:
        break;
    case 2:
        break;
}

// OK 「skipIfLastAndSharedWithCase=true」のため、caseと一緒にいる場合はOK
switch (i) {
    case 1:
        break;
    case 2:
    default:
        break;
    case 3:
        break;
}