#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<>();