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
?
该<Class>.this
语法提供了一种特殊的方式来引用类型的对象<Class>
,而不是影子类型。
此外,<Class>
必须是您尝试访问的类型的名称。就您而言,Sprite
不是的实际类型sprFace
。相反,是 的匿名子类的sprFace
实例,因此该语法不适用。Sprite