是否可以传递参数或将外部参数访问到匿名类?例如:

int myVariable = 1;

myButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        // How would one access myVariable here?
    }
});

侦听器有什么方法可以访问myVariable或将其传递给myVariable而不将侦听器创建为实际的命名类?

最佳答案

从技术上讲,没有,因为匿名类不能具有构造函数。

但是,类可以引用包含范围的变量。对于匿名类,这些可以是包含类的实例变量,也可以是标记为final的局部变量。

编辑:正如Peter所指出的,您还可以将参数传递给匿名类的父类(super class)的构造函数。

10-04 14:22