0

在编写参数化的 JUnit 测试用例时,我在构造函数中设置实例变量时遇到了这个警告:

The static field ClassA.ListOfStrings should be accessed in a static way

提供的解决方案是:

@SuppressWarnings("static-access")

ClassA.ListOfStrings = ParamListOfStrings;

代替

this.ListOfStrings = ParamListOfStrings;

自定义对象也会出现此警告,但其他数据类型(或单个String)不会出现此警告。为什么?

4

3 回答 3

2

它确实发生在其他静态数据类型上。

访问静态字段时,最好使用ClassName.fieldName而不是myObj.fieldName.

一个原因是在将字段更改为非静态时出现编译错误。

于 2013-03-19T08:38:45.490 回答
1

该警告与静态变量的类型无关,但与您使用所属类的实例而不是类的名称来限定静态字段访问表达式这一事实有关。

于 2013-03-19T08:39:39.417 回答
0

静态并不完全意味着“由所有实例共享” - 它的意思是“根本与特定实例无关”。换句话说,您可以在不创建任何实例的情况下获得类 A 中的静态字段。

你可以做

ClassName.variable;

代替

ClassName cn = new ClassName();
cn.variable;
于 2013-03-19T08:39:36.407 回答