简体   繁体   English

如何引用在Java中封装匿名类实例?

[英]How to refer to enclosing anonymous class instance in Java?

I'd like to know if it's possible (and how if it is) to refer to enclosing anonymous class instance in Java. 我想知道是否有可能(以及如何)引用Java中的封闭匿名类实例。

Example code: 示例代码:

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()
    }
});

If you were also a JavaScript coder, I bet you wouldn't need to ask this :) There is a trivial way to achieve what you want (and happens to be an important JavaScript idiom due to its peculiar semantics surrounding this ). 如果你也是一个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()
    }
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM