我很好奇为什么下面的内容会创建原始类的子类,从而更改类'签名。 (这里是demo)
class Rextester
{
private final T2 t1;
private final T2 t2;
public static void main(String[] args) {
new Rextester().test();
}
Rextester () {
t1 = new T2() {{
setFoo("foo");
setBar("bar");
}};
t2 = new T2() ;
t2.setBar("bar");
t2.setFoo("foo");
}
private void test() {
System.out.println("t1: " + t1.getClass()); // class Rextester$1
System.out.println("t2: " + t2.getClass()); // class T2
}
}
class T2 {
private String foo;
private String bar;
public String getFoo() {
return foo;
}
public void setFoo(String foo) {
this.foo = foo;
}
public String getBar() {
return bar;
}
public void setBar(String bar) {
this.bar = bar;
}
}
为什么t1
成为Rextester的子类,而t2
保持原样?
这带来了什么好处?