首先,我很抱歉,因为我是一名全新的 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));
但是,最后一行代码(上面)产生了这些错误:
未为类型 Prospect 定义方法 setProspect(ArrayList)
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;
}
我不太确定我错过了什么......有人可以帮我吗?
最佳答案
convertProspectIds
将 Map
作为参数,您将传递给它一个 List
。您需要更改方法签名或将 List
转换为 Map
。
setProspect
方法也是如此。它不期望 ArrayList
作为参数。
关于java - CompassADFAdaptor 类型中的错误 : The method convertProspectIds(Map<String, String>) 不适用于参数 (List<String>),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25671855/