5

静的変数とメソッドへの非静的アクセスを制限するために利用できるCheckstyleルールはありますか?

これにより、警告が表示されます。

instance.staticField = value;

Eclipseにはこの設定がありますが、ビルドで強制したいと思います。

4

4 に答える 4

3

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警告

于 2012-06-20T15:12:03.730 に答える
1

この目的には、FirebugまたはPMDのいずれかを使用できます。2 つの主要なビルド ツールMavenAntは、これを行うためのコマンドがあります。

于 2012-06-20T14:42:34.090 に答える
1

いいえ、Checkstyle にはすべてのチェックに制限/スコープがあります。1 つのファイルのみの構造を調べます。他のクラス/ファイルの構造を取得する機能はありません。

于 2012-11-09T06:35:44.633 に答える
1

名前が示すように、Checkstyle はコードの形式のみをチェックします。バグ パターンを検索する場合は、Findbugs を参照してください。

http://findbugs.sourceforge.net

于 2012-06-20T14:36:28.910 に答える