静态变量可以使用私有静态方法或静态块进行初始化。这两者之间是否存在微妙差别?是否有任何情况我不能使用静态方法来初始化静态成员?我发现后者更易读。
静态块初始化:
private static int NUM_ITER;
static {
// Operations
NUM_ITER = //val from above operations.
}
私有静态方法初始化:
private static int NUM_ITER = calculateNumIter();
// Some method comment on how we are calculating.
private static int calculateNumIter()
{
// Operations.
return //value_from_operations.
}
我更喜欢第二种方式,因为它更易读。是否有仅能使用第一种(静态块)的情况?
针对初始化静态成员变量(包括final和变量),最好的编码规范/设计是什么?在这个帖子中,我了解到私有静态方法比静态块有优势。
谢谢,