2014-09-04 135 views
2

首先,由于我是一位全新的Java开发人员并且受命负责处理大量的应用程序,所以我非常失去我的联盟。错误:类型CompassADFAdaptor中的convertProspectIds(Map <String,String>)方法不适用于参数(列表<String>)

我目前拥有这段代码。基本上,它会在Web应用程序的URL上查找一些值,然后将URL变量的名称和URL变量的值传递到应用程序中,然后将其添加到输出的文本流中。所以这些变量看起来像“& LeadID = 123”,这将转化为“LeadId”和“123”。在这一点上,我们重新格式化为XML值,如

<id sequence="1" source="leadId">123</id> 

这是负责(理论上)通过他们检查的变量,然后将它们放入一个地图,然后将代码到的代码,这将格式化它们:

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的)是未定义的类型前景

  2. 方法convertProspectIds(地图)中的类型CompassADFAdaptor不适用于参数(列表)

这是在参考该代码,这是其中的值应该被传递到和然后格式化为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

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

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

+0

我很抱歉,但我不太明白如何改变这一点。假设我需要传递地图,所以我有Key和Value对,我该怎么改变? – 2014-09-04 19:27:44

+0

什么是前景标识。这是一个字符串列表吗? – jny 2014-09-04 19:50:02

+0

这将是一组键的值,如: WTK,123 助剂,456 EFD,789 等 – 2014-09-04 21:07:16

相关问题