Я пытаюсь изменить значение «Объект» на объект «Список значений», чтобы один ключ мог хранить несколько значений. Найдите фрагмент кода.Convert Map <String, Object> to Map <String, List <Object>>
protected Subscriber updateSubscriberAttributes(Subscriber subscriber, Collection<SubscriberAttributeDto> subscriberAttributesCollection)
throws ErrorException {
// Do we have any custom attributes to store?
if ((subscriberAttributesCollection != null) && !subscriberAttributesCollection.isEmpty()) {
// Yes! Convert to a Map first.
Map<String, Object> subscriberAttributesMap = new HashMap<String, Object>(subscriberAttributesCollection.size());
for (SubscriberAttributeDto subscriberAttribute : subscriberAttributesCollection) {
// Convert the input attribute value to a database-appropriate value
SubscriberAttributeMetadata attrMetadata = subscriberAttribute.getAttributeMetadata();
if (attrMetadata != null) {
subscriberAttributesMap.put(attrMetadata.getColumnName(),
attrMetadata.convertToDatabaseValue((String) subscriberAttribute.getValue()));
}
}
// Perform the update
return updateSubscriberAttributes(subscriber, subscriberAttributesMap);
} else {
return subscriber;
}
}
Извините, код очень грязный. Поэтому проблема, с которой я столкнулся, заключается в следующем: если я изменю объявление subscribersAttributeMap
на Map<String,List<Object>>
, мне нужно изменить объявление метода и выбросить столько ошибок. Я пробовал это долгое время.
Это часть рефакторинга, а также. –
Спасибо за рефакторинг Luiggi .. –