EDIT: Это оказалось не проблемой с кодом на всех, но с ошибкой в плагине Groovy Eclipse, (http://jira.codehaus.org/browse/GRECLIPSE-373)Java неоднозначный тип для метода?
Eclipse дает мне странное сообщение об ошибке о неоднозначных типов в программе Java и я действительно не понимаю, почему. У меня есть интерфейс, который принимает общий параметр, указывающий, какой тип данных он возвращает.
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;
}
}
Doing это вызывает "GetData неоднозначна" ошибка.
Container<Impl<AnotherClass>> c = new Container(new Impl<AnotherClass>());
Collection<AnotherClass> coll = c.getA().getData();
Я в тупике на этом.
Не видя этой проблемы в Eclipse 3.4.2 с помощью JDK 1.6.0_10 – Nate
Возможно, вам нужно предоставить нам подробную информацию о 'AnotherClass'. Я просто попробовал 'java.util.Date' (это не окончательный вариант) вместо' AnotherClass', и он компилируется в Eclipse. Просто второстепенный, вам не хватает 'interface' в' InterfaceA', а 'getData' должен быть общедоступным в' Impl' –
Я использую Eclipse 3.5 с JDK 1.6.0_16, но я понял, что не опубликовал код. Я обновил код с реальной проблемой. –