问题描述
将数组插入Map时,出现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;
}
解决方法
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<>();