私有静态字段不是最终的?

Fre*_*Lan 2 java static final

有人能举例说明你何时在private static场上使用private static final场地?我很难想到一个你想要声明一个private类变量的例子,这个变量可能会发生变化.

kin*_*iko 10

输入Singleton模式:

public class Clazz {

    public static void main(String[] args) {
        MyObject myObject = MyObject.getInstance();
    }
}

class MyObject {
    private static MyObject instance; 
    //I belong to the class, but I need not be created before somebody wants me.

    private MyObject() {
    }

    public static MyObject getInstance() {
        if (instance == null) {
            instance = new MyObject();
        }
        return instance;
    }
}
Run Code Online (Sandbox Code Playgroud)


Mar*_*oun 7

是.

例如,当你想要一个计数器变量来计算从一个类创建了多少个对象时,你就可以创建它static- 它与类相关联而不是一个对象,但它不是 final因为它正在改变:

protected static int counter = 0;

//constructor
counter++;
Run Code Online (Sandbox Code Playgroud)

值得一提的是:

我没有提到Singleton示例,因为如果你想要是线程安全的,那么变量必须是static和final.