@keddad
Ученик

Почему ArrayDeque не может быть создана для Charов?

Предположим, что я создаю ArrayDeque для чаров:
ArrayDeque<char> pass_raw = new ArrayDeque<char>();

Или делаю функцию, его принимающую:
static public void stackUpper(ArrayDeque<char> pass) {
        if (pass.getLast() == 'A') {
            pass.addLast('B');
        } else {
            pass.addLast('A');
        }
    }


Но это не работает! IntelliJ не ругается, но компилятор говорит, что ожидал референс (на что?) вместо чара:
Main.java:5: error: unexpected type
    public static void stackUpper(ArrayDeque<char> pass) {
                                             ^
  required: reference
  found:    char

Main.java:39: error: unexpected type
        ArrayDeque<char> pass_raw = new ArrayDeque<char>();
                   ^
  required: reference
  found:    char
Main.java:39: error: unexpected type
        ArrayDeque<char> pass_raw = new ArrayDeque<char>();
                                                   ^
  required: reference
  found:    char

Что я делаю не так?
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
В java в обобщениях нельзя использовать примитивы. Для этого существуют классы обёртки. Для char это Character, для int - Integer и т.д
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы