日期:2014-05-20  浏览次数:20597 次

一个很基础的问题。关于静态属性
一个类中的静态属性被赋值一次。 其他类是否可以在程序 被停止前。一直使用这个类中被第一次静态赋值的属性结果?

------解决方案--------------------
没听懂你的意思。

你是不是说
Java code
public class Config {
  public static int GLOBAL_VALUE = 100;
}

public class Worker {
  public void foo() {
    int value = Config.GLOBAL_VALUE;
    while (condition) {
      // do something with value
    }
  }
}

------解决方案--------------------
当然可以,如果是non-static,可以在域声明时候初始写死的,或者调用方法,也可以在构造函数中
比如
Java code
class A {
private final int x = 100;
private final int y = initY(); // 当然,如果这个方法声明抛出异常(比如throws Exception),那只能放到构造函数
private final int z;

A() {
  z = ....;
}

}

------解决方案--------------------
final可以在执行顺序在构造方法之前前包括构造方法赋值。