5

是否有可用的 Checkstyle 规则来限制对静态变量和方法的非静态访问?

这应该引起警告:

instance.staticField = value;

Eclipse 对此有一个设置,但我想在构建中强制执行它。

4

4 回答 4

3

我想使用javac -Xlint:static -Werror toto.java是你正在寻找的。

文档

我试过这个例子:

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

顾名思义,Checkstyle 只检查代码的形式。如果您搜索错误模式,您应该查看 Findbugs:

http://findbugs.sourceforge.net

于 2012-06-20T14:36:28.910 回答
1

不,Checkstyle 对所有检查都有限制/范围 - 它仅检查一个文件的结构,无法获取其他类/文件的结构。

于 2012-11-09T06:35:44.633 回答
1

为此,您可以使用FirebugPMD 。两个主要的构建工具Maven,并且Ant确实有为您执行此操作的命令。

于 2012-06-20T14:42:34.090 回答