是否有Checkstyle规则可用于限制对静态变量和方法的非静态访问?
这应该发出警告:
instance.staticField = value;
Eclipse对此有一个设置,但是我想在构建中强制执行它。
最佳答案
我猜想使用javac -Xlint:static -Werror toto.java
是您想要的。
从documentation:
-Xlint:name
:启用警告名称。有关可以使用此选项启用的警告的列表,请参见带有-Xlint选项的Warnings That Can Be Enabled or Disabled部分。 -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:警告:[static]静态变量应按类型名称限定,
StaticTest,而不是表达式
st.toto="dfd";
^
错误:找到警告并指定了-Werror
1个错误
1警告