我知道这段代码:
Set<String> set = new HashSet<String>() {{
add("test1");
add("test2");
}};
是真的:
Set<String> set = new HashSet<String>() {
{//initializer
add("test1");
add("test2");
}
};
初始化程序块在构造程序块之前执行。在上面的例子中, add("test1") 在构造函数被执行之前被调用。构造函数可能正在初始化许多实例字段,以便此类可以工作。我想知道为什么在构造函数之前调用.add()会起作用?有没有导致问题的案例?