在编写参数化的JUnit测试用例时,我在构造函数中设置实例变量时遇到此警告:
The static field ClassA.ListOfStrings should be accessed in a static way
提供的解决方案是:
@SuppressWarnings("static-access")
和
ClassA.ListOfStrings = ParamListOfStrings;
而不是
this.ListOfStrings = ParamListOfStrings;
对于自定义对象也会出现此警告,但对于其他数据类型(或单个String
)则不会出现此警告。为什么呢?
答案 0 :(得分:2)
它确实发生在静态的其他数据类型上。
访问静态字段时,最好使用ClassName.fieldName
代替myObj.fieldName
。
一个原因是在将字段更改为非静态时出现编译错误。
答案 1 :(得分:1)
警告与静态变量的类型无关,但事实上您使用拥有类的实例而不是名称为“静态字段访问表达式”。班级。
答案 2 :(得分:0)
静态并不意味着“由所有实例共享” - 它意味着“根本不与特定实例相关”。换句话说,你可以在没有创建任何实例的情况下进入A类的静态字段。
你可以做到
ClassName.variable;
而不是
ClassName cn = new ClassName();
cn.variable;