Re: [問題] Anonymous inner class

看板java作者 (Aitch)時間15年前 (2010/10/06 15:31), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串2/3 (看更多)
※ 引述《legnaleurc (CA)》之銘言: : 現在有一段 code 長這樣: : JButton button = new JButton(); : button.addMouseListener( new MouseAdapter() { : public void mouseClicked( MouseEvent e ) { : new Thread( new Runnable() { : @Override : public void run() { : ( ( JButton )e.getSource() ).setText( "..." ); : } : } ).start(); : } : } ); : 然後 ... 它就說 e 要是 final 才可以 : 我只是很單純地想要讓 inner classes 可以拿到上層的引數 : 請問有好的做法嗎? (不會要用 static field 吧?) 請用只有一個元素的陣列: final JButton[] buttons = new JButton[]{new JButton()}; 此時,你在Scope裡只要用buttons[0]即可~ 哈~~ :您為何不願意將button換成final呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.111.2.213

10/06 15:55, , 1F
我只是覺得 e 應該是屬於上層 scope 的東西
10/06 15:55, 1F

10/07 21:24, , 2F
應該可以 access 到, 為什麼非要加 final 不可?
10/07 21:24, 2F
文章代碼(AID): #1Ch2Nknf (java)
文章代碼(AID): #1Ch2Nknf (java)