【发布时间】:2013-08-08 11:04:23
【问题描述】:
我的项目中有一些喜欢静态初始化块的开发人员。对此有什么替代? 这种替代方案的缺点是什么?
public class BlockTest {
String test = new String();
static{
test = "test string";
}
}
据我了解,静态初始化块用于设置静态字段的值,如果它不能在一行中完成。但我不明白为什么我们需要一个特殊的块。这会导致可读性降低和一些混乱。
【问题讨论】:
-
示例代码还能编译吗?这不应该是因为您无法从静态块访问非静态字段。
-
我不确定我是否同意静态块令人困惑。为了针对您的情况提出替代方案,我们需要准确了解静态初始化程序块的难度。您几乎在帖子的前面说明了为什么我们需要它们;当无法在一行中完成初始化时
-
我认为Jon Skeet's answer 到this question 解释得很好。
-
对于引用的代码当然是静态初始化器我们毫无意义
标签: java static initialization block