HashMap .put () отмечает ошибку несовместимых типов

Я пытаюсь разместить массив объектов и его эквивалентный идентификатор внутри HashMap.

Это моя HashMap:

private Map<String, Value[]> array_memory = new HashMap<String, Value[]>();

Это мой массив объектов:

Value[] array = new Value[x];

И вот как я помещаю их в array_memory:

return array_memory.put(id, array);

Однако когда я запускаю свою программу, я получаю эту ошибку:

error: incompatible types: Value[] cannot be converted to Value
    return array_memory.put(id, array);
                           ^

Любая помощь будет высоко оценен. (Я хотел бы извиниться, если мне не хватает чего-то очевидного, я работал над этим уже несколько часов, и я не в своем лучшем состоянии).

Спасибо за ваше время!

Пожалуйста, опубликуйте минимальный воспроизводимый пример

takendarkk 30.03.2018 20:02
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
54
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Я предполагаю, что это происходит внутри метода с типом возвращаемого значения Value. Компилятор жалуется на это, потому что map#put возвращает добавляемое значение, что приводит к этой ошибке, потому что Value[] не может быть преобразован в Value.

Он отлично смотрится с предоставленным вами фрагментом кода.

Я думаю, что переменная, получающая ваш возвращенный array_memory.put(id, array), имеет тип Value вместо Value[].

Функция put возвращает второй параметр, возможно, вы получите несоответствие вашего типа в возврате.

Другие вопросы по теме