如何从匿名类的方法内部访问实例变量
?
class Tester extends JFrame {
private JButton button;
private JLabel label;
//..some more
public Tester() {
function(); // CALL FUNCTION
}
public void function() {
Runnable r = new Runnable() {
@Override
public void run() {
// How do I access button and label from here ?
}
};
new Thread(r).start();
}
}
最佳答案
您正在寻找的是完全合格的地址,因为它们未标记为final
final Runnable r = new Runnable() {
public void run() {
Tester.this.button // access what you need
Tester.this.label // access what you need
}};
在构建 ActionListeners
和其他内容时,您也可以对匿名内部类
使用相同的访问模式。
这在规范中解释为 15.8.4 Qualified this ,投反对票的人显然没有读过这些内容。并且也没有阅读理解代码。
关于java - 如何从匿名类内部访问封闭类实例变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15824577/