【发布时间】:2013-11-26 15:13:40
【问题描述】:
我正在尝试将 Map 值对象更改为 List 值对象,以便单个键可以存储多个值。请找到代码sn-p。
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..