如果我想在 ActionListener 中初始化局部变量,则会收到此错误:
Local variable word defined in an enclosing scope must be final or effectively final.
代码看起来像这样:
int number = 0;
anyButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
//And here I get the error:
number++;
}
});
你知道怎么做吗?
最佳答案
您需要一个可变的线程安全变量,而不是原语。
考虑用包装类(可以是您自己的,也可以是标准的[例如AtomicInteger
])或单元素数组替换该原语:
final AtomicInteger number = new AtomicInteger();
...
number.getAndIncrement();
关于java - 如何在 ActionListener 中初始化局部变量? - java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47314434/