一尘不染

什么是Java中的Double Brace初始化?

java

{{ ... }}Java中的Double Brace初始化语法()是什么?


阅读 430

收藏
2020-02-25

共1个答案

一尘不染

双括号初始化将创建一个从指定类(外部括号)派生的匿名类,并在该类(内部括号)内提供一个初始化程序块。例如

new ArrayList<Integer>() {{
   add(1);
   add(2);
}};

请注意,使用这种双重括号初始化的作用是创建匿名内部类。创建的类具有this指向周围外部类的隐式指针。尽管通常不是问题,但在某些情况下(例如序列化或垃圾收集时)可能会引起悲伤,值得一提的是。

2020-02-25