编辑:事实证明这根本不是代码问题,而是 Groovy Eclipse 插件中的错误 (http://jira.codehaus.org/browse/GRECLIPSE-373)
Eclipse给我一个关于 Java 程序中不明确类型的奇怪错误消息,我真的不明白为什么。我有一个接口(interface),它采用一个通用参数来指示它返回的数据类型。
public interface InterfaceA<T> {
T getData();
}
其中一个实现如下所示:
public class Impl<T extends AnotherClass> implements InterfaceA<Collection<T>> {
public Collection<T> getData() {
// get the data
}
}
还有一个InterfaceA的容器
public class Container<T extends InterfaceA>
{
private T a;
public Container(T a) {
this.a = a;
}
public T getA() {
return a;
}
}
这样做会导致“getData is ambiguous”错误。
Container<Impl<AnotherClass>> c = new Container(new Impl<AnotherClass>());
Collection<AnotherClass> coll = c.getA().getData();
我被这个难住了。
最佳答案
似乎是 groovy 插件导致的错误。 http://jira.codehaus.org/browse/GRECLIPSE-373 .这根本不是java问题。感谢您的帮助,我深表歉意。
关于方法的Java模糊类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1613691/