是否可以传递参数或将外部参数访问到匿名类?例如:
int myVariable = 1;
myButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// How would one access myVariable here?
}
});
侦听器有什么方法可以访问myVariable或将其传递给myVariable而不将侦听器创建为实际的命名类?
最佳答案
从技术上讲,没有,因为匿名类不能具有构造函数。
但是,类可以引用包含范围的变量。对于匿名类,这些可以是包含类的实例变量,也可以是标记为final的局部变量。
编辑:正如Peter所指出的,您还可以将参数传递给匿名类的父类(super class)的构造函数。