在Java中,this/super关键字是否可以表示除类/枚举之外的任何内容?

Joh*_*oth 3 java this super anonymous-class

我注意到了:

class A {
    ClassB b = new ClassB() { // anonymous class
        /* some expression using this */
    }
}
Run Code Online (Sandbox Code Playgroud)

每当我this在匿名类中使用关键字时,都会this引用封闭的外部类/枚举而不是匿名类.

这是否意味着this永远不能代表一个匿名类?只是"正常"的类和枚举?

还可以thissuper代表一个界面?

axt*_*avt 6

您的初始假设是错误的 - this始终表示当前实例,即当前类的实例,即使它是匿名的.


Eri*_*son 5

您关于使用的声明this不正确.当您this在匿名类中使用时,它始终引用匿名类.除非您使用,否则它永远不会引用封闭的外部类OuterClassName.this.

this或者super永远不能代表接口,因为接口不能有定义的方法.