从匿名 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) 将为您解决问题。