Вот соответствующие классы и методы:
public class BoardTile implements BoardCoordinate
public class WordPath extends LinkedList<BoardTile>
public void inputCoordinates(Collection<BoardCoordinate> coords)
По сути, здесь происходит следующее: я пишу бота для флэш-игры, и у меня есть интерфейс BoardCoordinate для представления местоположения на доске. Класс, представляющий плитку на плате, называется BoardTile, и, поскольку он знает свое местоположение, он реализует интерфейс BoardCoordinate.
У меня есть список тайлов, представляющих путь по доске, который на самом деле является LinkedList BoardTiles. Наконец, у меня есть метод, в котором я передаю коллекцию BoardCoordinates в мой java.awt.Robot, который вводит запрошенный путь к флэш-игре. Коллекция пропущена ради того, чтобы избежать потенциально уродливой связи между классом скребка экрана и моим пакетом обработки данных.
Итак, вот код ошибки:
/* The highest scoring path found. */
Wordpath highest = null;
/* ...
* ... find the highest scoring path, etc.
*/
if (longest != null) {
screen.inputCoordinates(longest);
}
Ошибка компилятора, которую я получаю, заключается в следующем: метод inputCoordinates (Collection) в типе Screen не применим для аргументов (WordPath).
Но WordPath - это LinkedList BoardCoordinate! А LinkedList - это коллекция! Что тут происходит?
Конечно, я могу прикусить пулю и принять соединение, но это, во-первых, не то, что я хочу делать, а, во-вторых, возможность обучения ...