我在某些地方看到了这段代码。
new ArrayList<String>(){{
add("A");
add("B");
}}
我应该如何解释这段代码? 有人说这是Instance Initializer。但是,在我对Instance Initializer的理解中,它被用在一个类中以避免重复,特别是在它的构造函数中。 这意味着
public class Test1 {
int number;
public Test1() {
System.out.println("1");
this.number = 1;
}
public Test1(int i) {
System.out.println("1");
this.number = i;
}
}
通常比
更糟糕public class Test2 {
int number;
{System.out.println("1");}
public Test2() {
this.number = 1;
}
public Test2(int i) {
this.number = i;
}
}
所以,我认为Java中的Instance Initializer归因于一个特定的类,但也许很多人以我首先展示的方式使用这样的Instance Initializer。 并且初始化程序不属于某个类。 所以我有点困惑。 任何人都可以对第一个代码给出任何好的解释吗?