インスタンスメソッドから静的変数の値を操作しているときにエラーが発生するアプリケーションがいくつかあります。FindBugsエラー:インスタンスメソッドから静的フィールドへの書き込み
「インスタンスメソッドから静的フィールドに書き込む」。
複数のスレッドが同じ種類の変数に書き込む場合でも、このシナリオでは潜在的な問題が発生しますか?ドキュメントから
インスタンスメソッドから静的変数の値を操作しているときにエラーが発生するアプリケーションがいくつかあります。FindBugsエラー:インスタンスメソッドから静的フィールドへの書き込み
「インスタンスメソッドから静的フィールドに書き込む」。
複数のスレッドが同じ種類の変数に書き込む場合でも、このシナリオでは潜在的な問題が発生しますか?ドキュメントから
...
This instance method writes to a static field. This is tricky to get correct if multiple instances are being manipulated, and generally bad practice.
2つ目は
あなたはインスタンスメソッド、(私たちのインスタンスメソッドを含むクラス)クラスの任意のオブジェクトからstatic
フィールドを操作している場合は、そのメソッドを呼び出すことがあり、それは意志の潜在的な問題を装っについて、質問です他の人が既に開発してコード化している大規模なアプリケーションやアプリケーションでは、static
フィールドを操作するオブジェクトを見つけるのは難しいでしょう。
This Answerでもお手伝いできます。
EDIT:
FYI、あなたはコードを以下にfindbugの警告をバイパスすることができます。
class TestClass {
static int testInt = 0 ;
public static setTestInt (int a) {
TestClass.testInt = a ;
}
public void setInt (int a1) {
setTestInt (a1);
}
}
この問題はhttp://stackoverflow.com/q/3630485/1686291で確認してください。 –
私は特に、このシナリオで問題が生じる可能性がある場合は、スレッドが関与していないことを知りたいと思っています。 – Baz