[语法] {{;}}意思

楼主: Nomadismo (仕)   2021-11-14 02:51:12
Hi 各位大神
小弟我在leetcode上面看一个solution
for (int num : nums) {
List<List<Integer>> newSubsets = new ArrayList();
for (List<Integer> curr : output) {
newSubsets.add(new ArrayList<Integer>(curr){{add(num);}});
}
我其实看不太懂的是第四行里 {{;}}这个表示法,我想问一下具体上这个在
语法上代表什么意义,以及通常大概在哪个情境下比较会这样写
我用google找了,但是找不太到,不知道是不是我关键字下错
谢谢
作者: ssccg (23)   2021-11-14 03:26:00
anonymous class + initializer blocknew ArrayList<Integer>(curr){ } 这是个anonymous class应该看得懂吧,然后class里面本来就有可以有initializerblock,里面写的内容会自动复制到所有constructor中比较常见的是另一个static initializer,因为没有staticconstructor可以用,所以要初始化static member就会用到两个语法就只差在{ }前面有没有static至于本篇的用法什么时候会用到,我个人是从来没想过就为了多呼叫一次add就去subclass ArrayList啦...我会分三行写
楼主: Nomadismo (仕)   2021-11-14 04:20:00
原来如此,感谢s大
作者: chipnndale (奇奇兵)   2021-11-21 19:34:00
可以问一下是第几题吗?

Links booklink

Contact Us: admin [ a t ] ucptt.com