組み込みのCheckstyleチェックの1つはRequireThisですthis.
。これは、ローカルフィールドまたはメソッドの呼び出しの前に追加しない場合は常にオフになります。例えば、
public final class ExampleClass {
public String getMeSomething() {
return "Something";
}
public String getMeSomethingElse() {
//will violate Checkstyle; should be this.getMeSomething()
return getMeSomething() + " else";
}
}
このチェックが正当化されるかどうかに苦労しています。上記の例では、ExampleClass
はfinalであり、「正しい」バージョンが呼び出されることを保証する必要があります。getMeSomething
さらに、サブクラスでデフォルトの動作をオーバーライドしたい場合があるようです。その場合、「this」を要求するのは間違った動作です。
最後に、ソースを乱雑にし、実際に何が起こっているのかを確認するのをより困難にする、過度に防御的なコーディング動作のようです。
ですから、これを有効にするのは悪いチェックだとアーキテクトに提案する前に、他の誰かがこのチェックを有効にしたかどうか疑問に思っていますか?行方不明の結果として重大なバグを見つけましたthis
か?