如何在 Java 中引用封闭的匿名 class 实例?
How to refer to enclosing anonymous class instance in Java?
我想知道在 Java 中引用包含 anonymous class 实例是否可能(以及如何实现)。
示例代码:
final Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
new Task() {
@Override
public void onTaskFinish() {
handler.post(?); // what should go here?
}
}.execute()
}
});
如果您也是 JavaScript 编码员,我敢打赌您不需要问这个 :) 有一种简单的方法可以实现您想要的(并且恰好是一个重要的 JavaScript 成语,因为它围绕 this
).
的特殊语义
handler.post(new Runnable() {
@Override
public void run() {
final Runnable self = this;
new Task() {
@Override
public void onTaskFinish() {
handler.post(self);
}
}.execute()
}
});
我想知道在 Java 中引用包含 anonymous class 实例是否可能(以及如何实现)。
示例代码:
final Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
new Task() {
@Override
public void onTaskFinish() {
handler.post(?); // what should go here?
}
}.execute()
}
});
如果您也是 JavaScript 编码员,我敢打赌您不需要问这个 :) 有一种简单的方法可以实现您想要的(并且恰好是一个重要的 JavaScript 成语,因为它围绕 this
).
handler.post(new Runnable() {
@Override
public void run() {
final Runnable self = this;
new Task() {
@Override
public void onTaskFinish() {
handler.post(self);
}
}.execute()
}
});