[語法] {{;}}意思

作者: 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