【发布时间】:2014-10-21 16:11:45
【问题描述】:
我知道如果我有一个匿名内部类并且我需要外部类实例,我会使用 Outer.this。但是,我在 anon 类中有一个 anon 类,我想要后者的实例(外部匿名类)。
例子:
mRestService.getComicLatest(new Callback<Comic>() {
@Override
public void success(Comic comic, Response response) {
}
@Override
public void failure(RetrofitError retrofitError) {
mRetryFrame.findViewById(R.id.retry_button).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
mRestService.getComicLatest(WHAT_DO_I_PUT_HERE);
}
});
}
});
在上面的例子中,在 WHAT_DO_I_PUT_HERE 中,我想要 Callback anon 类的实例。
显然,我知道我可以在回调类中创建一个实例变量来保存对“this”的引用并将其用于 WHAT_DO_I_PUT_HERE,但我希望可能有一种更简洁的方法,就像我们调用的方式一样Outer.this 用于非匿名类。
【问题讨论】:
-
你为什么要这样对自己?
-
@SotiriosDelimanolis 哈哈,好吧,我猜这是一个足够好的理论问题。代码过多会看起来很糟糕,并且在大多数情况下也是糟糕的设计,但我仍然想知道这是否可能。看来我用Java这么久应该知道这些了。
标签: java this anonymous-class anonymous-inner-class