Задать вопрос
jeerjmin
@jeerjmin

Почему ошибка типа при использовании Generic?

Учу джаву и попутно алгоритмы, столкнулся с ошибкой, помогите разобраться
Я же передаю нужный тип в класс, в чем проблема ?

class Node<T> {

    T element;
    Node<T> next;

    public Node(T element, Node<T> next) {
        this.element = element;
        this.next = next;
    }
}

public class LinkedList<T> {

    Node<T> head;

    public LinkedList(Node<T> head) {
        this.head = head;
    }

    public T getValueById(Number id) {
        Number counter = 0;
        Node<T> searchingNode = this.head;

        while (id != counter) {
            searchingNode = searchingNode.next;

            if (searchingNode == null) {
                return -1; // Здесь ошибка Required type: T; Provided: int
            }
        }

        return searchingNode.element;
    }
    
}


public class Main {

    public static void main(String[] args) {

        Node<Integer> head = new Node(10, null);
        LinkedList<Integer> list = new LinkedList(head);

        System.out.print(list.getValueById(0));
    }
}
  • Вопрос задан
  • 134 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
Вы возвращаете 1, что является типом int, но обещаете, что функция вернет тип Т.
Верните null или возращайте Object
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы