Java模糊类型的方法?

Jef*_*rey 3 java eclipse ambiguous ambiguous-call

编辑:这根本不是代码的问题,而是Groovy Eclipse插件中的一个错误(http://jira.codehaus.org/browse/GRECLIPSE-373)

Eclipse给出了一个关于Java程序中模糊类型的奇怪错误消息,我真的不明白为什么.我有一个接口,它接受一个通用参数,指示它返回的数据类型.

public interface InterfaceA<T> {
    T getData();
}
Run Code Online (Sandbox Code Playgroud)

它的一个实现看起来像这样:

public class Impl<T extends AnotherClass> implements InterfaceA<Collection<T>> {
    public Collection<T> getData() {
       // get the data
    }
}
Run Code Online (Sandbox Code Playgroud)

InterfaceA还有一个容器

public class Container<T extends InterfaceA>
{
    private T a;

    public Container(T a) {
        this.a = a;
    }

    public T getA() {
        return a;
    }
}
Run Code Online (Sandbox Code Playgroud)

这样做会导致"getData is ambiguous"错误.

Container<Impl<AnotherClass>> c = new Container(new Impl<AnotherClass>());
Collection<AnotherClass> coll = c.getA().getData();
Run Code Online (Sandbox Code Playgroud)

我很难过这个.

Jef*_*rey 5

似乎有一个错误导致groovy插件.http://jira.codehaus.org/browse/GRECLIPSE-373.它根本不是java问题.感谢您的帮助和道歉.