Я работаю над проектом Java с несколькими классами. Один класс имеет основной метод, один класс представляет собой структуру данных максимальной кучи, а третий является классом-оболочкой для объекта, который должен храниться в максимальной куче.Метод undefined в Java
В классе обертки, я определяю следующий метод:
public void setHeapLoc(int l)
{
heapLoc = l;
}
В макс класса кучи, у меня есть следующий код:
public int insert(CompEq comp) {
assert s < size : "No room";
int current = size++;
Heap[current] = comp;
while ((current != 0) && (Heap[current].compareTo(Heap[parent(current)]) > 0)) {
swap(Heap, current, parent(current));
current = parent(current);
}
Heap[current].setHeapLoc(current); //<-------This line is the problem
return curr;
}
На линии я указал выше в метод, я получаю ошибку «Метод setHeapLoc (int) не определен для типа CompEq«
Между тем, в основном случае, если я говорю:
CompEq temp = new CompEq(eq);
temp.setHeapLoc(1);
Он отлично работает.
У кого-нибудь есть идеи, что может быть причиной этого?
EDIT: Кастинг не помогает. Изменение его на
Heap[current].setHeapLoc(current);
ADDS Ошибка «Ненужное отключение от CompEq до CompEq.»
Опубликовать объявление и инициализировать переменную кучи, а также определение класса HeapEq? – gyan
Кроме того, поскольку вы упомянули, что кастинг не помогает опубликовать ту часть, в которой вы снимаете. – Thihara