在实例方法中写入静态变量,为什么这是一个不好的做法?
我在这里对日食中的这个发现虫警告有点困惑。
public class MyClass {
public static String myString;
}
public class AnotherClass {
public void doSomething() {
MyClass.myString = "something";
}
}
这给了我一个findbugs警告“从实例方法写入静态字段”,但是这并没有给我一个警告:
public class MyClass {
public static String myString;
}
public class AnotherClass {
public void doSomething() {
doAnotherThing();
}
public static doAnotherThing() {
MyClass.myString = "something";
}
}
这有什么不同?,为什么从实例方法写入静态变量是一种不好的做法?,我假设它与同步有关,但我仍然不清楚。
我知道这看起来变量应该是最终的,但我正在从属性文件加载值。