小编kle*_*ker的帖子

这个构造函数调用以下双括号是什么?

不幸的是,我没有编写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;
    }
}
Run Code Online (Sandbox Code Playgroud)

所以这是我的问题:

  1. 如何调用这种符号/语法?
  2. 我在哪里可以阅读一些有关它的文档?

我想/希望如果有人能够为我提供第一个问题的答案,我将能够自己回答第二个问题.

说清楚:我知道输出是John Johnson;)但我不知道它为什么有效.

java syntax constructor anonymous-class

15
推荐指数
2
解决办法
4024
查看次数

标签 统计

anonymous-class ×1

constructor ×1

java ×1

syntax ×1