静的変数とメソッドへの非静的アクセスを制限するために利用できるCheckstyleルールはありますか?
これにより、警告が表示されます。
instance.staticField = value;
Eclipseにはこの設定がありますが、ビルドで強制したいと思います。
静的変数とメソッドへの非静的アクセスを制限するために利用できるCheckstyleルールはありますか?
これにより、警告が表示されます。
instance.staticField = value;
Eclipseにはこの設定がありますが、ビルドで強制したいと思います。
私javac -Xlint:static -Werror toto.java
はあなたが探しているのは使用することだと思います。
ドキュメントから:
-Xlint:name
:警告名を有効にします。このオプションで有効にできる警告のリストについては、-Xlintオプションで有効または無効にできる警告のセクションを参照してください。
-Werror
:警告が発生した場合はコンパイルを終了します。
私はこの例で試しました:
public class StaticTest {
public static String toto = "toto";
public static void main(String s[]) {
StaticTest st = new StaticTest();
st.toto="dfd";
}
}
出力は次のとおりです。
StaticTest.java:16:警告:[静的]静的変数はタイプ名で修飾する必要があります。
式ではなく、StaticTest
st.toto="dfd"; ^
エラー:警告が見つかり、-Werrorが指定されました1エラー1警告
いいえ、Checkstyle にはすべてのチェックに制限/スコープがあります。1 つのファイルのみの構造を調べます。他のクラス/ファイルの構造を取得する機能はありません。
名前が示すように、Checkstyle はコードの形式のみをチェックします。バグ パターンを検索する場合は、Findbugs を参照してください。