Я написал метод, который возвращает ArrayList со значениями, содержащимися в моей очереди. Очередь ArrayList заполнена объектами Node, и у этого класса есть параметр values типа T, который представляет собой данные, которые мне нужно получить. Я сделал метод getValue, чтобы сделать это:
public T getValue() {
return value;
}
(класс относится к типу ).
Метод в моем классе очереди такой:
public ArrayList getArray() {
ArrayList < T > onlyValues = new ArrayList<>();
for (int i = 0; i < queue.size(); i++) {
T tmp = (T)((queue.get(i)).getValue());
onlyValues.add(tmp);
}
return onlyValues;
}
Если я выполняю это без приведения (T), я получаю эту ошибку: error: incompatible types: Object cannot be converted to T
Зачем? Я знаю, что метод add принимает Object типа T, и мой метод в классе Node возвращает элемент T.