class MyClass1 {

    int x = 10;

    public static void main(String[] args) {
        MyClass1 obj = new MyClass1();
        obj.execute();
    }

    private  void execute() {
        Thread t = new Thread(new Runnable(){
            @Override
            public void run() {
                System.out.println(this);
                System.out.println(MyClass1.this.x);
            }
        });
        t.start();
    }

}


这里是指匿名内部类的对象。这就是为什么this.x不起作用的原因。但是,我们如何使用它来引用MyClass1对象呢?请解释。当我们执行Sysout(this)时,它会打印出com.java.MyClass1$1@3cd7c2ce,其中$指定内部类对象。我不清楚。

最佳答案

您不能在静态方法中使用this关键字,因为this指向该类的实例,而在静态方法中,您没有实例。

关于java - 在匿名内部类中引用实例变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44161411/

10-10 10:39