java{{}}匿名内部类初始化
前言
在刷题的时候看到有人写代码用了{{}}
写法,以前没有见过,特此记录。
1 | Queue<TreeNode> queue = new LinkedList<>() {{ add(root); }}; |
简单介绍
举例
{{}}
这种方法是对一个集合进行初始化操作,避免了对集合初始化进行一条一条的add。
1 | ArrayList<String> list = new ArrayList<String>(){ |
理解
第一个括号
1 | //定义了一个继承于ArrayList的类,它没有名字 |
这里的括号表示对一个类进行具体的定义。
第二个括号
1 |
|
这里的括号表示实例初始化块(Instance Initialiazer Block),也被称为非静态初始化块。
类比于静态初始块
1 | static{ |
参考
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 坚韧的长线「串联」散落的珍珠!
评论