我如何访问"这个"在匿名函数?

时间:2015-10-08 04:41:00

标签: java static non-static

我在编写匿名函数时无法访问this

public class Game extends JPanel {
    public void action() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                this.repaint();
            }
        }).start();
    }
    @Override
    public void paint(Graphics g) {
        // Paint stuff
    }
}

我无法声明我的类的新实例,因为我无法将类设置为我的新类实例,而不会出现静态/非静态错误。

1 个答案:

答案 0 :(得分:2)

写作时

 public void action() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                this.repaint();
            }
        }).start();
    }

由于您正在编写匿名内部类Runnable,因此在编写this.repaint().时会引用Runnable匿名类

要引用Game类重绘,语法为Game.this.repaint()