从匿名 Class 访问父 Class 时解决歧义
Resolving Ambiguity when Accessing Parent Class from Anonymous Class
我最近 运行 喜欢这样的东西...
public final class Foo<T>
implements Iterable<T> {
//...
public void remove(T t) { /* banana banana banana */ }
//...
public Iterator<T> Iterator {
return new Iterator<T>() {
//...
@Override
public void remove(T t) {
// here, 'this' references our anonymous class...
// 'remove' references this method...
// so how can we access Foo's remove method?
}
//...
};
}
}
有什么方法可以做我想做的事,同时保持匿名 class?或者我们是否必须使用内部 class 或其他东西?
要在封闭的 class 中访问 remove
,您可以使用
...
@Override
public void remove(T t) {
Foo.this.remove(t);
}
...
相关问题:Getting hold of the outer class object from the inner class object
Foo.this.remove(t) 将为您解决问题。
我最近 运行 喜欢这样的东西...
public final class Foo<T>
implements Iterable<T> {
//...
public void remove(T t) { /* banana banana banana */ }
//...
public Iterator<T> Iterator {
return new Iterator<T>() {
//...
@Override
public void remove(T t) {
// here, 'this' references our anonymous class...
// 'remove' references this method...
// so how can we access Foo's remove method?
}
//...
};
}
}
有什么方法可以做我想做的事,同时保持匿名 class?或者我们是否必须使用内部 class 或其他东西?
要在封闭的 class 中访问 remove
,您可以使用
...
@Override
public void remove(T t) {
Foo.this.remove(t);
}
...
相关问题:Getting hold of the outer class object from the inner class object
Foo.this.remove(t) 将为您解决问题。