不幸的是,我已经有五年没有编写 Java 代码了,而且我完全不记得下面的代码是如何或为什么工作的。
我偶然发现了一个类似的例子并将其分解为这个。重点是注释下方的部分:我没有得到构造函数符号,后跟双括号中的块。不幸的是,我在 Java 文档中或使用 Google 找不到任何东西(我应该用什么词来搜索?)。
package syntaxtest;
public class Main {
public static void main(String[] args) {
// What kind of notation is this?
MyTest tester = new MyTest() {{
setName("John Johnson");
}};
System.out.println(tester.getName());
}
}
class MyTest {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
所以这是我的问题:
- 这种表示法/语法是如何调用的?
- 我在哪里可以阅读有关它的一些文档?
我想/希望如果有人可以为我提供第一个问题的答案,我将能够自己回答第二个问题。
说清楚:我知道输出是John Johnson
;) 但我不知道它为什么起作用。