错误:CompassADFAdaptor类型中的convertProspectIds(Map <string,string>)方法不适用于参数(List <string>)</string> </string,string>

时间:2014-09-04 17:44:17

标签: java arraylist map

首先,我很抱歉,因为我是一名全新的Java开发人员,并且负责处理大量应用程序,所以我非常不在联盟中。

我目前有这个代码。基本上,它在Web应用程序的URL上查找某些值,然后将URL变量的名称和URL变量的值传递到应用程序中,然后将其添加到文本的输出流中。因此,变量看起来像“&amp; 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));

但是,最后一行代码(上面)产生了这些错误:

  1. 方法setProspect(ArrayList)未定义类型Prospect

  2. CompassADFAdaptor类型中的convertProspectIds(Map)方法不适用于参数(List)

  3. 这是对这段代码的引用,它应该传递值,然后格式化为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;
        }
    

    我不太确定我错过了什么...有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

convertProspectIdsMap作为参数,您将其传递给List。您需要更改方法签名或将List转换为Map

setProspect方法也是如此。它不期望ArrayList作为参数。