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

Luk*_* Vo 5 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
        }});
    }

};
Run Code Online (Sandbox Code Playgroud)

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

Ken*_*nde 4

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

此外,<Class>必须是您尝试访问的类型的名称。就您而言,Sprite不是实际类型sprFace。相反,是 的匿名子类sprFace实例,因此该语法不适用。Sprite