如何在按钮 ActionListener 中到达外部 int?

How can I reach outside int in a button ActionListener?

int a = 0 ;

btnNormal.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e3)
    {
        a = 2;
    }
});

我想这样做,但 eclipse 说:在封闭范围内定义的局部变量 a 必须是最终的或实际上是最终的。如果我更改为 final int 则什么也不会发生。解决办法是什么?如何更改 actionListener 中的 int?

您可以使用数组来解决您的问题。 像这样:

int[] a = {0};

btnNormal.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e3)
    {
        a[0] = 2;
    }
});

或者 AtomicInteger class:

final AtomicInteger a = new AtomicInteger(0);
btnNormal.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e3)
    {
        a.set(2);
    }
});