Исключение UnsupportedOperationException при вставке массива в карту

#java #exception #collections #maps #unsupportedoperation

#java #исключение #Коллекции #Карты #неподдерживаемая операция

Вопрос:

Я получаю исключение UnsupportedOperationException при вставке массива в карту. Входные данные для карты верны. Есть ли какой-либо правильный способ, которым я могу правильно вставить и вернуть данные?

     public static Map<String, ProductClassPeriodData[]> getPeriodsByAgreement(String[] productClassIds,String agreementId) 
    {
        Map data = Collections.EMPTY_MAP;
        for (int i = 0; i < productClassIds.length; i  )
        {
            ProductClassPeriodData[] periodData = getInstance().getProductClassPeriodsByAgreement(productClassIds[i], agreementId);
            data.put(String.valueOf(i), periodData);
        }
        return data;
    }
  

Ответ №1:

Collections.EMPTY_MAP является неизменяемым, там для этой операции не поддерживается.

 /**
 * The empty map (immutable).  This map is serializable.
 *
 * @see #emptyMap()
 * @since 1.3
 */
@SuppressWarnings("rawtypes")
public static final Map EMPTY_MAP = new EmptyMap<>();
  

Вместо этого используйте

 Map<String, ProductClassPeriodData[]> data = new HashMap<>();