Java 解决从匿名类访问父类时的歧义

Java 解决从匿名类访问父类时的歧义,java,anonymous-class,Java,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>() {

我最近遇到了这样的事情

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?           
            }

            //...

        };
    }
}
公共最终课程Foo
可移植的{
//...
公共无效删除(T){/*香蕉*/}
//...
公共迭代器迭代器{
返回新的迭代器(){
//...
@凌驾
公共空间移除(T){
//这里,“this”引用了我们的匿名类。。。
//“删除”引用了此方法。。。
//那么我们如何访问Foo的remove方法呢?
}
//...
};
}
}

有没有什么方法可以做到我想做的,同时保持这个匿名类?或者我们必须使用内部类或其他什么吗?

要访问封闭类中的
移除
,可以使用

...
    @Override
    public void remove(T t) {
        Foo.this.remove(t);         
    }
...

相关问题:

Foo.这个.remove(t)会帮你解决问题。

已经有完全相同的答案了。请向上投票,而不是发布重复的。可能重复的