首先,我很抱歉,因为我是一名全新的Java开发人员,并且负责处理大量应用程序,所以我非常不在联盟中。
我目前有这个代码。基本上,它在Web应用程序的URL上查找某些值,然后将URL变量的名称和URL变量的值传递到应用程序中,然后将其添加到文本的输出流中。因此,变量看起来像“& LeadID = 123”,这将转换为“LeadId”和“123”。此时,我们将其重新格式化为XML值,例如
<id sequence="1" source="leadId">123</id>
这是负责检查变量,然后将它们放入Map中的代码,然后(理论上)将它们传递给将格式化它们的代码:
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
Map<String, String> ProspectTrackingKeys = new HashMap<String, String>();
if (recipSettings.containsKey("leadId")) {
ProspectTrackingKeys.put("LeadId", recipSettings.get("leadId"));
}
if (recipSettings.containsKey("wtk")) {
ProspectTrackingKeys.put("wtk", recipSettings.get("wtk"));
}
if (recipSettings.containsKey("efd")) {
ProspectTrackingKeys.put("efd", recipSettings.get("efd"));
}
if (recipSettings.containsKey("aid")) {
ProspectTrackingKeys.put("aid", recipSettings.get("aid"));
}
if (recipSettings.containsKey("oth")) {
ProspectTrackingKeys.put("oth", recipSettings.get("oth"));
}
list.add(ProspectTrackingKeys);
prospect.setProspect(adaptor.convertProspectIds((Map<String, String>) prospectIds));
但是,最后一行代码(上面)产生了这些错误:
方法setProspect(ArrayList)未定义类型Prospect
CompassADFAdaptor类型中的convertProspectIds(Map)方法不适用于参数(List)
这是对这段代码的引用,它应该传递值,然后格式化为XML文本:
public ArrayList<ProspectId> convertProspectIds(
Map<String, String> recipientSettings) {
ArrayList<ProspectId> prospectIdList = new ArrayList<ProspectId>();
int i = 0;
Iterator it = recipientSettings.entrySet().iterator();
while(it.hasNext()) {
Map.Entry pairs = (Map.Entry)it.next();
ProspectId Id = new ProspectId();
Id.setSequence(i++);
Id.setSource(ProspectIdSource.valueOf(pairs.getKey().toString()));
Id.setValue(pairs.getValue().toString());
prospectIdList.add(Id);
}
return prospectIdList;
}
我不太确定我错过了什么...有人可以帮助我吗?
答案 0 :(得分:1)
convertProspectIds
将Map
作为参数,您将其传递给List
。您需要更改方法签名或将List
转换为Map
。
setProspect
方法也是如此。它不期望ArrayList
作为参数。