[英]variables and methods and actionlisteners
我有這個(部分偽)代碼
class a {
void b()
{
int d = 0;
JButton c = new JButton();
c.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e)
{
d = 1;
}
});
}
}
但是,它不起作用,eclipse建議將最終標識符添加到d,但這使得值無法改變。 很抱歉,如果這是一個愚蠢的問題,但很難為谷歌提出類似這樣的問題...我也無法在杠桿上聲明變量高於方法b。
您可能希望在方法之外移動d的聲明。
class a {
int d = 0;
method b() {
JButton c = new JButton();
c.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
d = 1;
}
}
}
..並格式化你的代碼。
這是因為代碼:
c.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
d = 1;
}
});//a little corrected here
實際上創建一個新的嵌套類並overrides
actionPerformed(ActionEvent e)
方法。 由於它不是同一個類的一部分,因此安全 java不允許該嵌套類方法訪問除聲明的final
之外的局部變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.