[語法] {{;}}意思

看板java作者 (仕)時間7月前 (), 編輯推噓0(0011)
留言11則, 2人參與, 7月前最新討論串1/1
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找了,但是找不太到,不知道是不是我關鍵字下錯 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 24.17.20.101 (美國) ※ 文章網址: https://www.ptt.cc/bbs/java/M.1636829474.A.D91.html

11/14 03:26, 7月前 , 1F
anonymous class + initializer block
11/14 03:26, 1F

11/14 03:28, 7月前 , 2F
new ArrayList<Integer>(curr){ } 這是個anonymous class
11/14 03:28, 2F

11/14 03:28, 7月前 , 3F
應該看得懂吧,然後class裡面本來就有可以有initializer
11/14 03:28, 3F

11/14 03:30, 7月前 , 4F
block,裡面寫的內容會自動複製到所有constructor中
11/14 03:30, 4F

11/14 03:32, 7月前 , 5F
比較常見的是另一個static initializer,因為沒有static
11/14 03:32, 5F

11/14 03:32, 7月前 , 6F
constructor可以用,所以要初始化static member就會用到
11/14 03:32, 6F

11/14 03:33, 7月前 , 7F
兩個語法就只差在{ }前面有沒有static
11/14 03:33, 7F

11/14 03:34, 7月前 , 8F
至於本篇的用法什麼時候會用到,我個人是從來沒想過就為了
11/14 03:34, 8F

11/14 03:35, 7月前 , 9F
多呼叫一次add就去subclass ArrayList啦...
11/14 03:35, 9F

11/14 03:37, 7月前 , 10F
我會分三行寫
11/14 03:37, 10F

11/14 04:20, 7月前 , 11F
原來如此,感謝s大
11/14 04:20, 11F
文章代碼(AID): #1Xa0aYsH (java)
文章代碼(AID): #1Xa0aYsH (java)