在编写参数化JUnit测试用例时,我在构造函数中设置实例变量时遇到以下警告:
The static field ClassA.ListOfStrings should be accessed in a static way
提供的解决方案包括:
@SuppressWarnings("static-access")
和
ClassA.ListOfStrings = ParamListOfStrings;
而不是
this.ListOfStrings = ParamListOfStrings;
自定义对象也会出现此警告,但其他数据类型(或单个String)不会出现此警告。为什么?
发布于 2013-03-19 16:38:45
这种情况确实发生在static的其他数据类型上。
当访问静态字段时,最好使用ClassName.fieldName而不是myObj.fieldName。
一个原因是在将字段更改为非静态字段时出现编译错误。
发布于 2013-03-19 16:39:39
该警告与静态变量的类型无关,而是因为您使用所属类的实例而不是类的名称来限定静态字段访问表达式。
发布于 2013-03-19 16:39:36
静态并不意味着“由所有实例共享”-它意味着“与特定实例完全无关”。换句话说,您可以在不创建任何实例的情况下获取类A中的静态字段。
你可以做到
ClassName.variable;而不是
ClassName cn = new ClassName();
cn.variable;https://stackoverflow.com/questions/15494722
复制相似问题