1
這可能是我的代碼中一個愚蠢的問題,但是當的mouseClicked在面板上進行將項目從循環條件是一樣的ItemDialog的項目參數?匿名監聽器內部的循環
for (Item item: itemsList) {
JPanel panel = new ItemPanel(item);
panel.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent arg0) {
new ItemDialog(item);
}
public void mouseEntered(MouseEvent arg0) {}
public void mouseExited(MouseEvent arg0) {}
public void mousePressed(MouseEvent arg0) {}
public void mouseReleased(MouseEvent arg0) {}
});
是的。你的'for-each'循環中沒有其他'item',所以引用很簡單。 調試IDE中的代碼,你看到了什麼? – CubeJockey
對於downvoters:這不是一個愚蠢的問題。關於匿名內部類別的混淆範圍是一個很好的問題,他們如何保證未來的價值仍然是一樣的。 Plus循環範圍變量。加上Java-8會自動使變量成爲'final'。 –
我不明白downvote。有很多問題都是錯誤的假設導致錯誤的,例如stackoverflow.com/questions/8327781/(編輯:或簡稱:我同意先生勺) – Marco13