是否可以向匿名类传递参数或访问外部参数?例如:
int myVariable = 1;
myButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// How would one access myVariable here?
}
});
有没有什么方法可以让侦听器访问 myVariable 或传递 myVariable 而无需将侦听器创建为实际的命名类?
原文由 Lewis 发布,翻译遵循 CC BY-SA 4.0 许可协议
从技术上讲,不,因为匿名类不能有构造函数。
但是,类可以从包含范围引用变量。对于匿名类,这些可以是包含类的实例变量或标记为 final 的局部变量。
编辑:正如彼得指出的那样,您还可以将参数传递给匿名类的超类的构造函数。