【发布时间】:2014-07-17 23:43:28
【问题描述】:
如何在不使用辅助变量的情况下调用外部类的回调函数,就像我在下面的示例中所做的那样。
请注意Calling outer class function from inner class 中描述的解决方案可能不起作用。
public abstract class Job {
public void callback();
}
public abstract class ExtendedJob extends Job {
protected void handleResult() {
// workaround for accessing the outter class
final ExtendedJob outter = this;
new ExtendedJob {
public void callback() {
// can i do the same without the outter variable?
outter.callback();
}
}
}
}
【问题讨论】:
-
我不认为你可以没有变量,但它不像使用辅助变量会有害。
-
@DirkyJerky 它有效,看看第一个答案:)
-
这与此有何不同,除了您有一个额外的扩展意味着它对所有成员都可见? stackoverflow.com/questions/9043170/…
-
我在想,由于内部类也是一个 ExtendedJob,
ExtendedJob.this将等同于this。但我猜内部类实际上只是 ExtendedJob 的一个子类。
标签: java inner-classes anonymous-class