java - 为什么我不能在匿名类中使用 <Class>.this?

标签 java oop anonymous anonymous-class

我最近使用这段代码,并意识到在匿名类中,我无法通过.this 访问实例,如下所示:

Sprite sprFace = new Sprite() {

    @Override
    protected void onManagedUpdate(float pSecondElapsed) {
        runOnUpdateThread(new Runnable() {

        @Override
        protected void run() {    
            Sprite.this.getParent().detach(Sprite.this); // Here
        }});
    }

};

我知道如何解决它(只需声明一个“我”变量),但我需要知道为什么我不能使用 <Class>.this

最佳答案

<Class>.this语法提供了一种引用 <Class> 类型对象的特殊方式,而不是阴影类型。

此外,<Class>必须是您要访问的类型的名称。在你的情况下,Sprite 不是 sprFace 的实际类型.相反,sprFaceSprite 的匿名子类 的实例, 因此语法不适用。

关于java - 为什么我不能在匿名类中使用 <Class>.this?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7103087/

相关文章:

java - java中从最高到最低数字的冒泡排序

java - CentOS 上还有其他 SelectorProvider(默认 EPollSelectorProvider)吗?

java - 使用 ThreadCount TestNG 限制并行测试的数量

Java 类层次结构

JQuery将dom元素点击事件绑定(bind)到成员函数

javascript - 如何让匿名用户访问 rpc api

Java 泛型 'Incompatible Type' 编译时错误

java - 接口(interface)和抽象类的属性继承 - Java

python - 如何从父调用子构造函数?

C++ 传递对匿名结构的引用 - 你可以吗?