Я пытаюсь реализовать поиск в глубину для графиков с использованием стеков. Однако я продолжаю получать ошибки о переменной типа. Вот часть моего кода:
public Result<T> depthFirstSearchFrom(String vertexId, Predicate< IVertex<T> > pred){
Result<T> result = new Result<T>();
IVertex<T> startVertex = getVertex(vertexId);
Stack stack = new Stack();
stack.add(startVertex);
while (!stack.isEmpty()){
IVertex<T> current = stack.pop();
boolean visited = visitedVertices.contains(tgtVertex);
tgtVertex.getLabel().setParentVertex(current);
if (!visited){
stack.add(tgtVertex);
}
}
if (stack.isEmpty()){
result.setVisitedVertices(visitedVertices);
result.setPathCost(Float.POSITIVE_INFINITY);
}
}
return result;
}
Ошибка возникает в строках:
ошибка: несовместимые типы: объект не может быть преобразован в IVertex, где T — переменная типа
IVertex<T> current = stack.pop();
а также
ошибка: непроверенный вызов add(E) как члена необработанного типа Vector, где E — переменная типа.
stack.add(tgtVertex);
Stack
— я бы не советовал вам этого делать. Затем вы используетеtgtVertex
и не показали нам его объявление. Покажите минимально воспроизводимый пример. - person Jon Skeet   schedule 19.03.2017