Я пытаюсь создать несколько классов, реализующих конкретный интерфейс (в данном случае XYPlottable
) и метод, который может обрабатывать любой класс, реализующий этот интерфейс.
На данный момент у меня есть следующее (которое работает):
public interface XYPlottable {
public Number getXCoordinate();
public Number getYCoordinate();
public Number getCoordinate(String fieldName);
}
public class A implements XYPlottable {
//Implements the above interface properly
...
}
public class B implements XYPlottable {
//Implements the above interface properly
...
}
Это отлично работает. У меня также есть метод, чтобы попытаться построить что-нибудь, что является XYPlottable:
public static Frame createPlot(String title, String xAxisLabel, String yAxisLabel,
List<XYPlottable> points, boolean fitLine) {
Поэтому я пытаюсь использовать его с одним из указанных выше конкретных классов и жалуется на несовместимые типы:
List<A> values = _controller.getValues(tripName);
XYPlotter.createPlot("Plot A", "B", "C", values, false);
Вот точная ошибка:
incompatible types
required: java.util.List<XYPlottable>
found: java.util.List<A>
Надеюсь, я ' m просто на мгновение упускаю что-то действительно очевидное, но, возможно, я неправильно понимаю, как мне следует использовать интерфейсы.