如何在ActionListener中初始化局部变量? - Java

时间:2017-11-15 18:08:02

标签: java initialization actionlistener local-variables

如果我想在ActionListener中初始化局部变量,我会收到此错误:

  

在封闭范围内定义的局部变量字必须是最终的或有效的最终字。

代码看起来像这样:

int number = 0;

anyButton.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent arg0) {

        //And here I get the error:
        number++;

    }
});

你知道怎么做吗?

1 个答案:

答案 0 :(得分:0)

您需要一个可变的线程安全变量,而不是一个原语。

考虑用包装类替换该原语(可以是您自己的,也可以是标准的[例如AtomicInteger])或单元素数组:

final AtomicInteger number = new AtomicInteger();
...
number.getAndIncrement();