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

staticである他のデータ型でも発生します。

static フィールドにアクセスする場合は、ClassName.fieldNameの代わりに使用することをお勧めしますmyObj.fieldName

理由の 1 つは、フィールドを非静的に変更するとコンパイル エラーが発生することです。

于 2013-03-19T08:38:45.490 に答える
1

警告は、静的変数の型とは関係ありませんが、クラスの名前ではなく、所有するクラスのインスタンスで静的フィールド アクセス式を修飾しているという事実とは関係ありません。

于 2013-03-19T08:39:39.417 に答える
0

静的とは、「すべてのインスタンスで共有される」という意味ではなく、「特定のインスタンスとはまったく関係がない」という意味です。つまり、インスタンスを作成することなく、クラス A の static フィールドを取得できます。

できるよ

ClassName.variable;

それ以外の

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