public class Outer {
public void Say(Bar bar) {
//...
}
public Outer(final Foo foo) {
//...
}
}
public interface Foo {
void blah(Bar bar);
}
public class Application {
public static void main(String[] args) {
Outer outer = new Outer(new Foo() {
@Override
public void blah(Bar bar) {
/*trying to access "outer"*/.Say(bar);
}
});
}
}
我应该怎么做才能访问“外部”?
谢谢。
StackOverflow禁止发布此内容,因为它说我的帖子主要是代码,这一行只是一堆废话。请忽略它。
答案 0 :(得分:1)
外部无法访问。因为实例是在创建Foo之后创建的。
我看到两种方式: 1.将变量outer转换为静态上下文。 2.在调用方法blah()
时移交变量答案 1 :(得分:0)
在您的示例中,'外部'简直就是这个'